Arduino: bununla ne yapılabilir? Yeni başlayanlar için Arduino: adım adım talimatlar. Arduino Programlama ve Projeler: Nereden Başlamalı? Arduino tasarımları

Bu makalede eksiksiz bir derleme yapmaya karar verdim. adım adım rehber Arduino'ya yeni başlayanlar için. Arduino'nun ne olduğuna, öğrenmeye başlamak için neye ihtiyacınız olduğuna, programlama ortamını nereden indireceğinize ve nasıl kurup yapılandıracağınıza, nasıl çalıştığına ve programlama dilinin nasıl kullanılacağına ve tam teşekküllü bir Arduino oluşturmak için gerekli olan çok daha fazlasına bakacağız. Bu mikrodenetleyici ailesini temel alan karmaşık cihazlar.

Burada Arduino ile çalışmanın ilkelerini anlamanız için özetlenmiş bir minimum vermeye çalışacağım. Programlanabilir mikrodenetleyiciler dünyasına daha kapsamlı bir şekilde dalmak için bu sitenin diğer bölümlerine ve makalelerine dikkat edin. Bazı yönlerin daha ayrıntılı incelenmesi için bu sitedeki diğer materyallere bağlantılar bırakacağım.

Arduino nedir ve ne işe yarar?

Arduino, herkesin çeşitli elektro-mekanik cihazlar oluşturmasına olanak tanıyan bir elektronik yapı kitidir. Arduino yazılım ve donanımdan oluşur. Yazılım kısmı, bir geliştirme ortamı (ürün yazılımı yazmak ve hata ayıklamak için bir program), birçok hazır ve kullanışlı kitaplık ve basitleştirilmiş bir programlama dili içerir. Donanım, geniş bir mikrodenetleyici yelpazesi ve onlar için hazır modüller içerir. Bu sayede Arduino ile çalışmak çok kolay!

Arduino'nun yardımıyla programlamayı, elektrik mühendisliğini ve mekaniği öğrenebilirsiniz. Ancak bu sadece bir eğitim yapıcısı değil. Buna dayanarak gerçekten kullanışlı cihazlar yapabilirsiniz.
Basit yanıp sönen ışıklardan, meteoroloji istasyonlarına, otomasyon sistemlerinden başlayıp akıllı ev sistemlerine, CNC makinelerine ve insansız hava araçlarına kadar uzanıyor. Olasılıklar hayal gücünüzle bile sınırlı değil çünkü uygulamaya yönelik çok sayıda talimat ve fikir var.

Arduino Başlangıç ​​Kiti

Arduino öğrenmeye başlamak için mikrodenetleyici kartının kendisini ve ek parçalarını edinmeniz gerekir. Bir Arduino başlangıç ​​kiti satın almak en iyisidir, ancak ihtiyacınız olan her şeyi kendiniz seçebilirsiniz. Bir set seçmenizi öneririm çünkü daha kolay ve genellikle daha ucuzdur. Kesinlikle incelemeniz gereken en iyi setlere ve ayrı parçalara bağlantılar:

Yeni başlayanlar için temel Arduino kiti:Satın almak
Eğitim ve ilk projeler için geniş set:Satın almak
Ek sensör ve modül seti:Satın almak
Arduino Uno, serinin en temel ve kullanışlı modelidir:Satın almak
Kolay öğrenme ve prototip oluşturma için lehimsiz devre tahtası:Satın almak
Kullanışlı konektörlere sahip kablo seti:Satın almak
LED seti:Satın almak
Direnç kiti:Satın almak
Düğmeler:Satın almak
Potansiyometreler:Satın almak

Arduino IDE geliştirme ortamı

Ürün yazılımını yazmak, hata ayıklamak ve indirmek için Arduino IDE'yi indirip yüklemeniz gerekir. Bu çok basit ve kullanışlı bir programdır. Web sitemde geliştirme ortamının indirilmesi, kurulması ve yapılandırılması sürecini zaten anlattım. O yüzden buraya sadece linkleri bırakacağım En son sürüm programlar ve

Sürüm pencereler Mac OS X Linux
1.8.2

Arduino programlama dili

Elinizde bir mikrodenetleyici kartı ve bilgisayarınızda bir geliştirme ortamı kurulu olduğunda ilk eskizlerinizi (firmware) yazmaya başlayabilirsiniz. Bunu yapmak için programlama diline aşina olmanız gerekir.

Arduino programlama, önceden tanımlanmış işlevlere sahip C++ dilinin basitleştirilmiş bir sürümünü kullanır. Diğer C benzeri programlama dillerinde olduğu gibi kod yazmanın da bir takım kuralları vardır. İşte en temel olanları:

  • Her talimatın ardından noktalı virgül (;) gelmelidir
  • Bir işlevi bildirmeden önce, işlevin döndürdüğü veri türünü belirtmeniz veya işlev bir değer döndürmezse geçersiz kılmanız gerekir.
  • Değişken tanımlamadan önce veri tipinin belirtilmesi de gereklidir.
  • Yorumlar şu şekilde belirlenir: // Satır içi ve /* blok */

Veri türleri, işlevler, değişkenler, operatörler ve dil yapıları hakkında daha fazla bilgiyi adresindeki sayfada bulabilirsiniz. Tüm bu bilgileri ezberlemenize ve hatırlamanıza gerek yok. Her zaman referans kitabına gidebilir ve belirli bir işlevin sözdizimine bakabilirsiniz.

Tüm Arduino ürün yazılımı en az 2 işlev içermelidir. Bunlar setup() ve loop()'dur.

kurulum fonksiyonu

Her şeyin işe yaraması için bir taslak yazmamız gerekiyor. Butona bastıktan sonra LED'in yanmasını ve bir sonraki basışta sönmesini sağlayalım. İşte ilk taslağımız:

// bağlı cihazların pinlerini içeren değişkenler int switchPin = 8; int ledPin = 11; // butonun durumunu saklayacak değişkenler ve LED boolean lastButton = LOW; boolean currentButton = DÜŞÜK; boolean ledOn = false; void setup() ( pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); ) // boolean debounse'u geri alma işlevi(boolean last) ( boolean current = digitalRead(switchPin); if(last != current) ( gecikme ( 5); current = digitalRead(switchPin); ) dönüş akımı; ) void loop() ( currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) ( ledOn = !ledOn; ) lastButton = currentButton ; digitalWrite(ledPin, ledOn); )

// bağlı cihazların pinlerini içeren değişkenler

int switchPin = 8;

int ledPin = 11;

// butonun ve LED'in durumunu saklayacak değişkenler

boolean lastButton = DÜŞÜK;

boolean currentButton = DÜŞÜK;

boolean ledOn = false;

geçersiz kurulum() (

pinMode(switchPin, INPUT);

pinMode(ledPin, ÇIKIŞ);

// geri dönüş fonksiyonu

boolean debounse (son boolean) (

boole akımı = digitalRead(switchPin);

if (son != mevcut ) (

gecikme(5);

akım = digitalRead(switchPin);

dönüş akımı;

geçersiz döngü() (

currentButton = debounse(lastButton);

if (lastButton == DÜŞÜK && currentButton == YÜKSEK ) (

ledOn = ! ledOn;

lastButton = currentButton;

digitalWrite(ledPin, ledOn);

Bu çizimde, temas sıçramasını bastırmak için ek bir geri tepme fonksiyonu oluşturdum. Web sitemde iletişim sıçraması hakkında bilgi var. Bu materyale mutlaka göz atın.

PWM Arduino'su

Darbe genişlik modülasyonu (PWM), bir sinyalin görev döngüsünü kullanarak voltajı kontrol etme işlemidir. Yani PWM kullanarak yükü sorunsuz bir şekilde kontrol edebiliriz. Örneğin bir LED'in parlaklığını sorunsuz bir şekilde değiştirebilirsiniz ancak parlaklıktaki bu değişiklik voltajı azaltarak değil, düşük sinyal aralıklarını artırarak elde edilir. PWM'nin çalışma prensibi bu şemada gösterilmektedir:

LED'e PWM uyguladığımızda hızla yanmaya ve sönmeye başlıyor. Frekans çok yüksek olduğundan insan gözü bunu göremez. Ancak video çekerken büyük olasılıkla LED'in yanmadığı anları göreceksiniz. Bu, kamera kare hızının PWM frekansının katı olmaması koşuluyla gerçekleşecektir.

Arduino'da yerleşik bir darbe genişliği modülatörü vardır. PWM'yi yalnızca mikro denetleyici tarafından desteklenen pinlerde kullanabilirsiniz. Örneğin Arduino Uno ve Nano'nun 6 PWM pini vardır: bunlar D3, D5, D6, D9, D10 ve D11 pinleridir. Pimler diğer kartlarda farklılık gösterebilir. İlgilendiğiniz panonun açıklamasını bulabilirsiniz

Arduino'da PWM'yi kullanmak için, pin numarasını ve 0'dan 255'e kadar olan PWM değerini argüman olarak alan bir fonksiyon vardır. 0, yüksek sinyalle %0 doluluktur ve 255, %100'dür. Örnek olarak basit bir çizim yazalım. LED'in sorunsuz bir şekilde yanmasını sağlayalım, bir saniye bekleyelim ve aynı şekilde sönmesini sağlayalım ve bu şekilde sonsuza kadar devam edelim. İşte bu işlevi kullanmanın bir örneği:

// LED pin 11'e bağlı int ledPin = 11; void setup() ( pinMode(ledPin, OUTPUT); ) void loop() ( for (int i = 0; i< 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i >0; i--) ( analogWrite(ledPin, i); gecikme(5); ) )

// LED pin 11'e bağlandı

int ledPin = 11;

geçersiz kurulum() (

pinMode(ledPin, ÇIKIŞ);

geçersiz döngü() (

for (int i = 0 ; ben< 255 ; i ++ ) {

analogWrite(ledPin, i);

gecikme(5);

gecikme(1000);

for (int i = 255; i > 0; i -- ) (

Yeni başlayanlar için Arduino'da amatör radyo deneylerini içeren bir dizi makale ve eğitim diyagramı. Bu, herhangi bir elektronik su ısıtıcısının, bir havya, baskılı devre kartlarının aşındırılması ve benzerleri olmadan, hem profesyonel prototipleme hem de çalışmada amatör deneyler için uygun, tam teşekküllü bir çalışma cihazını monte edebileceği amatör bir radyo yapım oyuncağıdır. elektronik.


Arduino kartı, öncelikle acemi radyo amatörlerine mikrodenetleyicileri programlamanın temellerini öğretmek ve ciddi teorik eğitim olmadan kendi elleriyle mikrodenetleyici cihazları oluşturmayı amaçlamaktadır. Arduino geliştirme ortamı, hazır program kodunu derlemenize ve kart belleğine yüklemenize olanak tanır. Üstelik kodu yüklemek son derece basittir.

Arduino'ya yeni başlayanlar için nereden başlamalı?

Öncelikle Arduino kartıyla çalışmak için acemi bir elektronik mühendisinin Arduino geliştirme programını indirmesi gerekiyor; program koduyla çalıştığımız yerleşik bir metin düzenleyici, bir mesaj alanı, bir metin çıkış penceresi (konsol) içerir. ), sık kullanılan komutlar için düğmelerin ve çeşitli menülerin bulunduğu bir araç çubuğu. Programlarını indirmek ve iletişim kurmak için bu program Arduino kartına standart bir USB kablosuyla bağlanır.


Arduino ortamında yazılan koda ne ad verilir? kroki. İçinde yazılmıştır Metin düzeltici Metin eklemek/kesmek, değiştirmek/aramak için özel araçlara sahip olan. Kaydetme ve dışa aktarma sırasında mesaj alanında açıklamalar görünür (hemen alttaki yeni başlayanlar için ilk dersteki resme bakın) ve hatalar da görüntülenebilir. Konsol, tam hata raporlarını ve diğer faydalı bilgileri içeren Arduino mesajlarını görüntüler. Araç çubuğu düğmeleri bir çizimi kontrol etmenize ve kaydetmenize, açmanıza, oluşturmanıza ve kaydetmenize, seri veri yolu izlemeyi açmanıza ve çok daha fazlasına olanak tanır.

Öyleyse, yeni başlayan elektronik mühendisleri için Arduino devrelerinin ilk dersine geçelim.

Yeni başlayanların rahatlığı için, Arduino UNO denetleyicisinde zaten bir direnç ve konektörün 13 numaralı pinine bağlı bir LED var, bu nedenle ilk deneyde herhangi bir harici radyo elemanına ihtiyacımız yok.


Arduino, kodu yükleyerek programımızın sistem başlatmaya katılmasına izin verir. Bunu yapmak için, mikrodenetleyici komutlarına, ilk önyükleme sırasında yürütüleceğini ve ardından bunları tamamen unutacağını belirtiriz (yani, bu komutlar, Arduino tarafından başlangıçta yalnızca bir kez yürütülecektir). Ve bu amaçla kodumuzda bu komutların saklandığı bir blok seçiyoruz. geçersiz kurulum () veya daha doğrusu bu işlevin küme parantezlerinin içindeki boşlukta program taslağına bakın.

şunu unutma diş telleri! Bunlardan en az birinin kaybı, taslağın tamamını tamamen kullanılamaz hale getirecektir. Ancak fazladan parantez de koymayın, bu da hataya neden olur.

Kodu indirin:
001-1_mig-led.ino dosyasındaki yorum ve açıklamalarla birlikte çizim

İşlev geçersiz döngü () Arduino açık olduğu sürece yürütülecek komutları buraya koyacağız. İlk komuttan itibaren yürütmeye başlayan Arduino, en sona ulaşacak ve aynı sırayı tekrarlamak için hemen başlangıca gidecektir. Ve bu, tahtaya güç verildiği sürece sonsuz sayıda kez olur. Özünde, boşluk döngüsü ana işlevdir ve Arduino'ya giriş noktasıdır.


İşlev gecikme(1000) program işlemeyi 1000 milisaniye geciktirir. Her şey sonsuz bir döngüde devam ediyor döngü().

Arduino'daki ilk programımızı anladıktan sonraki ana sonuç: Void döngüsü ve void setup fonksiyonlarını kullanarak talimatlarımızı mikrodenetleyiciye aktarıyoruz. Kurulum bloğunun içindeki her şey yalnızca bir kez yürütülecektir. Döngü modülünün içeriği, Arduino açık kaldığı sürece bir döngüde tekrarlanacaktır.

Önceki programda LED'in açılıp kapanması arasında ikinci bir gecikme vardı. Acemi bir Arduino operatörünün yukarıda kullandığı en basit kodunda büyük bir eksi vardı. LED'i bir saniyeliğine açıp kapatmak arasında bir duraklama sağlamak için işlevi kullandık. gecikme() ve bu nedenle şu anda denetleyici ana işlevdeki diğer komutları yürütemiyor döngü(). Bir fonksiyondaki kodu düzeltme döngü(), aşağıda sunulan bu sorunu çözmektedir.

Değeri önce HIGH sonra LOW yapmak yerine ledPin değerini alıp ters çevireceğiz. Diyelim ki YÜKSEK ise DÜŞÜK olacak vb.

Saniye LED kontrolü için Arduino kod seçeneği Burada:

Daha sonra işlevi değiştirebilirsiniz gecikme(). Bunun yerine işlevi kullanmak daha iyidir milis(). Programın başlatılmasından bu yana geçen milisaniye sayısını döndürür. Program kodunun çalıştırılmasından yaklaşık 50 gün sonra işlev taşacaktır.

Benzer bir işlev mikro(), program kodunun başlatılmasından bu yana geçen mikrosaniye sayısını döndürür. Fonksiyon, 70 dakikalık program çalışmasından sonra sıfıra dönecektir.

Elbette bu, taslağımıza birkaç satır kod ekleyecektir, ancak şüphesiz sizi daha deneyimli bir programcı yapacak ve Arduino'nuzun potansiyelini artıracaktır. Bunu yapmak için millis fonksiyonunun nasıl kullanılacağını öğrenmeniz yeterlidir.

En basit geciktirme fonksiyonunun tüm Arduino programının yürütülmesini duraklatarak bu süre zarfında herhangi bir görevi gerçekleştiremez hale getirdiği açıkça anlaşılmalıdır. Programın tamamını duraklatmak yerine eylemin tamamlanmasına kadar ne kadar zaman geçtiğini sayabiliriz. Bu, güzel bir şekilde millis() işlevi kullanılarak uygulanır. Her şeyin anlaşılmasını kolaylaştırmak için, bir LED'in zaman gecikmesi olmadan yanıp sönmesi için aşağıdaki seçeneği göz önünde bulunduracağız.

Bu programın başlangıcı diğer standart Arduino taslaklarıyla aynıdır.


Bu örnekte iki Arduino dijital I/O pini kullanılmaktadır. LED, ÇIKIŞ olarak yapılandırılmış olan pin 8'e bağlanır. 9 üzerinden GİRİŞ olarak yapılandırılmış bir düğme bağlanır. Butona bastığımızda pin 9 HIGH olarak ayarlanır ve program pin 8’i HIGH olarak değiştirerek LED’i yakar. Düğmenin bırakılması pin 9'u DÜŞÜK'e sıfırlar. Kod daha sonra pin 8'i DÜŞÜK olarak değiştirerek gösterge ışığını kapatır.

Beş LED'i kontrol etmek için Arduino portlarıyla çeşitli manipülasyonlar kullanacağız. Bunu yapmak için doğrudan Arduino portlarına veri yazacağız, bu bize tek bir fonksiyon kullanarak LED'lerin değerlerini ayarlamamızı sağlayacak.

Arduino UNO'nun üç bağlantı noktası vardır: B(8'den 13'e kadar dijital giriş/çıkışlar); C(analog girişler); D(dijital girişler/çıkışlar 0 - 7)

Her port üç kaydı kontrol eder. İlk DDR, pinin giriş mi yoksa çıkış mı olacağını belirtir. İkinci PORT kaydını kullanarak pini HIGH veya LOW olarak ayarlayabilirsiniz. Üçüncüsünü kullanarak, giriş olarak çalışıyorlarsa Arduino bacaklarının durumu hakkındaki bilgileri okuyabilirsiniz.

Devreyi çalıştırmak için B portunu kullanacağız. Bunun için tüm port pinlerini dijital çıkış olarak ayarlayacağız. B limanının sadece 6 ayağı vardır. DDRB kayıt bitleri şu şekilde ayarlanmalıdır: "1" , eğer pin çıkış (OUTPUT) olarak kullanılacaksa ve "0" Pimi giriş (GİRİŞ) olarak kullanmayı planlıyorsak. Bağlantı noktası bitleri 0'dan 7'ye kadar numaralandırılır, ancak her zaman 8 pinin tümü bulunmaz

Diyelimki: DDRB = B00111110;// Port B pinlerini 1'den 5'e kadar çıkış ve 0'ı giriş olarak ayarlayın.

Farlar devremizde beş çıkış kullanıyoruz: DDRB = B00011111; // Port B pinlerini 0'dan 4'e çıkış olarak ayarlayın.

B portuna veri yazmak için PORTB kaydını kullanmanız gerekir. İlk LED'i kontrol komutunu kullanarak yakabilirsiniz: PORTB = B00000001;, birinci ve dördüncü LED: PORTB = B00001001 ve benzeri

İki ikili kaydırma operatörü vardır: sol ve sağ. Sola kaydırma operatörü tüm veri bitlerinin sola doğru hareket etmesine neden olurken sağa kaydırma operatörü bunları sağa taşır.

Örnek:

varA = 1; // 00000001
varA = 1 varA = 1 varA = 1

Şimdi programımızın kaynak koduna dönelim. İki değişken girmemiz gerekiyor: yukarı aşağı yukarı veya aşağı nereye hareket edileceğinin değerlerini ve ikincisini içerecektir Saylon hangi LED'lerin yanacağını gösterecektir.

Yapısal olarak böyle bir LED'in bir ortak terminali ve her renk için üç terminali vardır. Aşağıda bir RGB LED'i ortak bir katotla bir Arduino kartına bağlama şeması verilmiştir. Bağlantı devresinde kullanılan tüm dirençler 220-270 Ohm arası aynı değerde olmalıdır.


Ortak bir katotla bağlantı için, üç renkli LED'in bağlantı şeması hemen hemen aynı olacaktır, ancak ortak pin toprağa (cihazdaki topraklama) değil +5 volt pinine bağlanacaktır. Her iki durumda da kırmızı, yeşil ve mavi pinler kontrol cihazının 9, 10 ve 11 numaralı dijital çıkışlarına bağlanır.

Arduino UNO'nun dokuzuncu pinine 220 Ohm direnç üzerinden harici bir LED bağlayacağız. İkincisinin parlaklığını sorunsuz bir şekilde kontrol etmek için işlevi kullanın. analogYaz(). Denetleyici ayağına bir PWM sinyalinin çıkışını sağlar. Üstelik ekip pinMode() aramanıza gerek yok. Çünkü analogWrite(pin, değer) iki parametre içerir: çıkış için pin - pin numarası, değer - 0'dan 255'e kadar değer.

Kod:
/*
Acemi bir Arduino geliştiricisi için analogWrite() komutunun bir LED'in Fade efektini uygulamaya yönelik yeteneklerini ortaya koyan öğretici bir örnek
*/
int parlaklık = 0; // LED parlaklığı
int fadeAmount = 5; // parlaklık değiştirme adımı
imzasız uzun currentTime;
imzasız uzun loopTime;

Kurulumu geçersiz kıl() (
pinMode(9, ÇIKIŞ); // pin 9'u çıkış olarak ayarladık
currentTime = milis();
döngüZamanı = geçerliZaman;
}

Geçersiz döngü() (
currentTime = milis();
if(currentTime >= (loopTime + 20))(
analogWrite(9, parlaklık); // pin 9'daki değeri ayarladık

Parlaklık = parlaklık + solma Tutarı; // parlaklığı değiştirmek için bir sonraki döngüde oluşturulacak bir adım ekleyin

// min.'ye ulaşıldıysa veya maks. değerler, sonra ters yöne gideriz (tersine):
if (parlaklık == 0 || parlaklık == 255) (
fadeMiktarı = -fadeMiktarı;
}
döngüZamanı = geçerliZaman;
}
}

Arduino'yu kodlayıcıyla çalıştırmak

Kodlayıcı, dönüş açısını elektrik sinyaline dönüştürmek için tasarlanmıştır. Ondan faz olarak zıt olan iki sinyal (A ve B) alıyoruz. Bu eğitimde, devir başına on iki konuma sahip olan (her konum tam olarak 30°'dir) SparkFun COM-09117 kodlayıcıyı kullanacağız. Aşağıdaki şekil, kodlayıcı saat yönünde veya saat yönünün tersine hareket ettiğinde A ve B çıkışının birbirine nasıl bağlı olduğunu açıkça göstermektedir.

A sinyali pozitif bir seviyeden sıfıra giderse, B çıkışının değerini okuruz. Eğer B çıkışı zamanın bu noktasında pozitif bir durumdaysa, o zaman enkoder saat yönünde hareket eder, eğer B bir sıfır seviyesi çıkışı verirse, o zaman kodlayıcı ters yönde hareket eder. Her iki çıkışı da okuyarak, bir mikro denetleyici kullanarak dönüş yönünü hesaplayabiliyoruz ve kodlayıcının A çıkışından gelen darbeleri sayarak dönüş açısını hesaplayabiliyoruz.

Gerekirse kodlayıcının ne kadar hızlı döndüğünü belirlemek için frekans hesaplamalarını kullanabilirsiniz.

Öğretici örneğimizde bir kodlayıcı kullanarak, PWM çıkışını kullanarak LED'in parlaklığını ayarlayacağız. Kodlayıcıdan veri okumak için daha önce ele aldığımız yazılım zamanlayıcılarına dayalı bir yöntem kullanacağız.

gerçeği göz önüne alındığında hızlı vaka, kodlayıcı düğmesini saniyenin 1/10'unda 180° döndürebiliriz, bu durumda saniyenin 1/10'unda 6 darbe veya bir saniyede 60 darbe olacaktır.

Gerçekte daha hızlı dönmek mümkün değildir. Tüm yarım döngüleri takip etmemiz gerektiğinden frekansın 120 Hertz civarında olması gerekir. Tamamen emin olmak için 200 Hz'yi alalım.

Bu durumda mekanik bir kodlayıcı kullandığımızdan, temas sıçraması mümkündür ve düşük frekans bu sıçramayı mükemmel bir şekilde filtreler.


Program zamanlayıcı sinyallerine dayanarak, enkoder çıkışı A'nın mevcut değerini önceki değerle sürekli olarak karşılaştırmak gerekir. Durum pozitiften sıfıra değişirse B çıkışının durumunu yoklarız. Durum yoklamasının sonucuna bağlı olarak LED parlaklık değeri sayacını artırır veya azaltırız. Yaklaşık 5 ms (200 Hz) zaman aralığına sahip program kodu aşağıda sunulmuştur:

Arduino başlangıç ​​kodu:
/*
** Kodlayıcı
** LED'in parlaklığını kontrol etmek için Sparkfun'un kodlayıcısı kullanılır
*/

Dahili parlaklık = 120; // LED parlaklığı, yarıdan başla
int fadeAmount = 10; // parlaklık değiştirme adımı
imzasız uzun currentTime;
imzasız uzun loopTime;
const int pin_A = 12; // pin 12
const int pin_B = 11; // pin 11
imzasız karakter kodlayıcı_A;
imzasız karakter kodlayıcı_B;
imzasız karakter kodlayıcı_A_prev=0;
geçersiz kurulum() (
// pin 9'un çıkış olduğunu bildirelim:
pinMode(9, ÇIKIŞ); // pin 9'u çıkış olarak ayarladık
pinMode(pin_A, INPUT);
pinMode(pin_B, INPUT);
currentTime = milis();
döngüZamanı = geçerliZaman;
}
geçersiz döngü() (
currentTime = milis();
if(currentTime >= (loopTime + 5))( // durumları her 5 ms'de bir kontrol edin (frekans 200 Hz)
kodlayıcı_A = digitalRead(pin_A); // kodlayıcının A çıkışının durumunu oku
kodlayıcı_B = digitalRead(pin_B); // kodlayıcı çıkışı B
if((!encoder_A) && (encoder_A_prev))( // durum pozitiften sıfıra değişirse
if(kodlayıcı_B) (
// B çıkışı pozitif durumda, yani dönüş saat yönünde
// ışığın parlaklığını artırın, en fazla 255
if(parlaklık + fadeAmount)
başka(
// B çıkışı sıfır durumundadır, bu da dönüşün saat yönünün tersine olduğu anlamına gelir
// parlaklığı azaltın, ancak sıfırın altına düşürmeyin
if(parlaklık - fadeAmount >= 0) parlaklık -= fadeAmount;
}

}
kodlayıcı_A_prev = kodlayıcı_A; // bir sonraki döngü için A'nın değerini kaydet

AnalogWrite(9, parlaklık); // parlaklığı dokuzuncu pine ayarlıyoruz

DöngüZamanı = geçerliZaman;
}
}

Yeni başlayanlar için olan bu örnekte, ses üretmek için bir piezo yayıcıyla çalışmaya bakacağız. Bunu yapmak için 20 Hz - 20 kHz frekans aralığında ses dalgaları üretmemizi sağlayan bir piezoelektrik sensörü ele alalım.

Bu, LED'lerin sesin tamamına yerleştirildiği amatör bir radyo tasarımıdır. Bu şemayı kullanarak çeşitli aydınlatma ve animasyon efektleri oluşturabilirsiniz. Karmaşık diyagramlar çeşitli büyük kelimeleri bile görüntüleyebilir. Başka bir deyişle, bu temel bir surround monitördür

Servo sürücü, çeşitli radyo kontrollü modellerin tasarımında ana unsurdur ve bir kontrolör kullanılarak kontrolü basit ve kullanışlıdır.


Kontrol programı basit ve sezgiseldir. Servo sürücüyü kontrol etmek için gerekli tüm komutları içeren bir dosyanın bağlanmasıyla başlar. Daha sonra servoMain gibi bir servo nesnesi oluşturuyoruz. Bir sonraki fonksiyon, servonun kontrol cihazının dokuzuncu pinine bağlı olduğunu belirttiğimiz setup() fonksiyonudur.

Kod:
/*
Arduino Servo
*/
#katmak
Servo servoAna; // Servo nesnesi

Kurulumu geçersiz kıl()
{
servoMain.attach(9); // Servo pin 9'a bağlandı
}

geçersiz döngü ()
{
servoMain.write(45); // Servoyu 45° sola döndür
gecikme(2000); // 2000 milisaniye bekle (2 saniye)
servoMain.write(0); // Servoyu 0° sola döndür
gecikme(1000); // 1 sn duraklat.

gecikme(1500); // 1,5 sn bekle.
servoMain.write(135); // Servoyu 135° sağa döndür
gecikme(3000); // 3 saniye duraklat.
servoMain.write(180); // Servoyu 180° sağa döndür
gecikme(1000); // 1 sn bekle.
servoMain.write(90); // Servoyu 90° döndürün. Merkezi konum
gecikme(5000); // 5 sn duraklat.
}

Ana fonksiyonda döngü(), servo motora aralarında duraklamalar bırakarak komutlar veriyoruz.

7 segmentli göstergede Arduino sayaç devresi

Yeni başlayanlara yönelik bu basit Arduino projesi, normal 7 bölümlü ortak katot ekranı kullanarak bir sayaç devresi oluşturmayı içerir. Aşağıdaki program kodu bir tuşa bastığınızda 0'dan 9'a kadar saymaya başlamanızı sağlar.

Yedi bölümlü gösterge - sayılar oluşturacak şekilde istenen sırayla açılabilen 8 LED'in (sonuncusu noktadan sorumludur) ortak bir katotla birleşimidir. Aşağıdaki şekle bakınız, bu devrede 3 ve 8 numaralı pinlerin katoda tahsis edildiğine dikkat edilmelidir.


Sağda Arduino pinleri ile LED gösterge pinleri arasındaki yazışma tablosu bulunmaktadır.

Bu projenin kodu:

bayt sayıları = (
B11111100, B01100000, B11011010, B11110010, B01100110,
B10110110, B10111110, B11100000, B11111110, B11100110
};
geçersiz kurulum() (
for(int i = 2; i pinMode(i, OUTPUT);
}
pinMode(9, INPUT);
}
int sayaç = 0;
bool go_by_switch = doğru;
int last_input_value = DÜŞÜK;
geçersiz döngü() (
if(go_by_switch) (
int switch_input_value = digitalRead(9);
if(son_giriş_değeri == DÜŞÜK && switch_input_value == YÜKSEK) (

}
last_input_value = switch_input_value;
) başka (
gecikme(500);
sayaç = (sayaç + 1) % 10;
}
writeNumber(sayaç);
}

Void writeNumber(int sayı) (
eğer(sayı 9) (
geri dönmek;
}
bayt maskesi = sayılar;
bayt akımıPinMask = B10000000;
for(int i = 2; i if(mask & currentPinMask) digitalWrite(i,HIGH);
else digitalWrite(i,LOW);
akımPinMask = akımPinMask >> 1;
}
}

Hemen hemen her cihazın PIN pinlerine bağlanabilen ek modüllerin yardımıyla Arduino kartlarının potansiyelini önemli ölçüde artırabilirsiniz. En popüler ve ilginç genişletme modüllerini veya aynı zamanda adlandırıldıkları şekliyle kalkanları düşünün.

Arduino tüm tasarım meraklıları arasında oldukça popülerdir. Bunu hiç duymamış olanların da tanıtılması gerekir.

Arduino nedir?

Arduino'yu kısaca nasıl tanımlayabilirsiniz? En iyi kelimeler şu şekilde olacaktır: Arduino, çeşitli elektronik cihazlar oluşturmak için kullanılabilecek bir araçtır. Özünde, bu gerçek bir genel amaçlı donanım bilgi işlem platformudur. İnşa etmek için kullanılabilir basit devreler ve oldukça karmaşık projelerin uygulanması için.

Tasarımcı, giriş-çıkış kartı olan donanımını temel alır. Kartı programlamak için C/C++ tabanlı diller kullanılır. Bunlar sırasıyla İşleme/Kablolama olarak adlandırılır. C grubundan, herhangi bir kişi tarafından çok hızlı bir şekilde ustalaşabilecekleri ve bilgiyi pratikte uygulamak oldukça önemli bir sorun olmadığı için aşırı basitliği miras aldılar. İşin kolaylığını anlamanız için Arduino'nun yeni başlayan sihirbaz tasarımcılara yönelik olduğu sıklıkla söylenir. Çocuklar bile Arduino kartlarını anlayabilir.

Üzerinde ne toplayabilirsiniz?

Arduino'nun uygulamaları oldukça çeşitlidir; hem yazının sonunda tavsiye edeceğimiz en basit örnekler için hem de manipülatörler, robotlar veya üretim makineleri gibi oldukça karmaşık mekanizmalar için kullanılabilir. Bazı ustalar bu tür sistemleri kullanarak tablet, telefon, gözetleme ve ev güvenlik sistemleri yapmayı başarıyorlar” dedi. akıllı ev"ya da sadece bilgisayarlar. Hiç deneyimi olmayanların bile başlayabileceği, yeni başlayanlara yönelik Arduino projeleri yazının sonunda yer alıyor. İlkel sanal gerçeklik sistemleri oluşturmak için bile kullanılabilirler. Hepsi Arduino programlamanın sağladığı çok yönlü donanım ve yetenekler sayesinde.

Bileşenleri nereden satın alabilirim?

İtalya'da üretilen bileşenler orijinal kabul edilir. Ancak bu tür kitlerin fiyatı düşük değil. Bu nedenle, bazı şirketler ve hatta bireyler, şakayla karışık üretim klonları olarak adlandırılan Arduino uyumlu cihaz ve bileşenleri zanaatkar yöntemlerle üretmektedir. Bu tür klonları satın alırken işe yarayacakları kesin olarak söylenemez, ancak para biriktirme arzusu bunun bedelini öder.

Bileşenler kitlerin parçası olarak veya ayrı olarak satın alınabilir. Arabaların, farklı kontrol türlerine sahip helikopterlerin veya gemilerin montajı için önceden hazırlanmış kitler bile var. Yukarıda resmedilen Çin malı bir setin fiyatı 49 dolardır.

Ekipman hakkında daha fazla bilgi

Arduino kartı basittir AVR mikrodenetleyici Bir önyükleyici ile flaşlanan ve gerekli minimum USB-UART bağlantı noktasına sahip olan. Başka önemli bileşenler de var ancak yazı kapsamında sadece bu iki bileşene odaklanmak daha doğru olacaktır.

Öncelikle geliştirilen programın yer aldığı tek devre üzerine kurulu bir mekanizma olan mikrodenetleyiciden bahsedelim. Program, düğmelere basılarak, yaratılışın bileşenlerinden (dirençler, transistörler, sensörler vb.) Sinyaller alınarak etkilenebilir. Ayrıca, sensörler amaçları açısından çok farklı olabilir: aydınlatma, hızlanma, sıcaklık, mesafe, basınç, engeller vb. LED'ler ve tweeter'lardan grafik ekranlar gibi karmaşık cihazlara kadar basit parçalar görüntüleme cihazları olarak kullanılabilir. Göz önünde bulundurulan kaliteler arasında motorlar, valfler, röleler, servolar, elektromıknatıslar ve listelenmesi çok uzun zaman alacak daha pek çok şey yer alır. MK, bağlantı kablolarını kullanarak bu listelerin bazılarıyla doğrudan çalışır. Bazı mekanizmalar adaptör gerektirir. Ancak bir kez tasarlamaya başladığınızda kendinizi koparmanız zor olacaktır. Şimdi Arduino programlama hakkında konuşalım.

Pano programlama süreci hakkında daha fazla bilgi edinin

Zaten bir mikrodenetleyici üzerinde çalışmaya hazır olan bir programa ürün yazılımı denir. Bir proje veya Arduino projeleri olabilir, bu nedenle bulma sürecini hızlandırmak için her ürün yazılımını ayrı bir klasörde saklamanız tavsiye edilir. gerekli dosyalar. Özel cihazlar: programcılar kullanılarak MK kristaline aktarılır. Ve burada Arduino'nun bir avantajı var - bir programcıya ihtiyaç duymuyor. Arduino'yu yeni başlayanlar için programlamanın zor olmaması için her şey yapıldı. Yazılı kod bir USB kablosu aracılığıyla MK'ye yüklenebilir. Bu avantaj, önceden oluşturulmuş bazı programcılar tarafından değil, özel bir ürün yazılımı olan bir önyükleyici tarafından elde edilir. Bootloader, bağlantıdan hemen sonra başlayan ve herhangi bir komut olup olmadığını, kristalin yanıp söneceğini, Arduino projelerinin olup olmadığını dinleyen özel bir programdır. Önyükleyici kullanmanın çok çekici birkaç avantajı vardır:

  1. Ek zaman maliyeti gerektirmeyen tek iletişim kanalının kullanılması. Yani Arduino projeleri birçok farklı kabloyu bağlamanızı gerektirmiyor ve bunları kullanırken karışıklık yaşanacaktır. Başarılı çalışma için bir USB kablosu yeterlidir.
  2. Çarpık ellere karşı koruma. Doğrudan ürün yazılımını kullanarak mikro denetleyiciyi tuğla durumuna getirmek oldukça kolaydır, çok çalışmanıza gerek yoktur. Bir önyükleyiciyle çalışırken, potansiyel olarak tehlikeli ayarlara erişemezsiniz (elbette bir geliştirme programının yardımıyla, aksi takdirde her şey bozulabilir). Bu nedenle, yeni başlayanlar için Arduino, yalnızca anlaşılır ve kullanışlı olması açısından tasarlanmamıştır, aynı zamanda onlarla çalışan kişinin deneyimsizliğinden kaynaklanan istenmeyen finansal harcamalardan da kaçınmanıza olanak sağlayacaktır.

Başlanacak projeler

Bir kit, bir havya, reçine ve lehim aldığınızda, çok karmaşık yapıları hemen şekillendirmemelisiniz. Elbette bunları yapabilirsiniz ancak karmaşık projelerde yeni başlayanlar için Arduino'da başarı şansı oldukça düşüktür. Becerilerinizi eğitmek ve geliştirmek için Arduino'nun etkileşimini ve işleyişini anlamanıza yardımcı olacak birkaç basit fikri uygulamaya çalışabilirsiniz. Yeni başlayanlar için Arduino ile çalışmanın ilk adımları olarak şunları dikkate almanızı tavsiye edebiliriz:

  1. Arduino sayesinde işe yarayacak bir tane yaratın.
  2. Arduino'ya ayrı bir düğme bağlama. Bu durumda düğmenin LED'in parlaklığını 1 numaralı noktadan ayarlayabilmesini sağlayabilirsiniz.
  3. Potansiyometre bağlantısı.
  4. Servo sürücü kontrolü.
  5. Üç renkli bir LED'e bağlanma ve çalışma.
  6. Piezoelektrik elemanın bağlanması.
  7. Bir fotorezistörün bağlanması.
  8. Bir hareket sensörünün bağlanması ve çalışmasıyla ilgili sinyaller.
  9. Nem veya sıcaklık sensörünün bağlanması.

Geleceğe yönelik projeler

Bireysel LED'leri bağlamak için Arduino ile ilgilenmeniz pek olası değildir. Büyük olasılıkla, kendi arabanızı veya uçan döner tablanızı yaratma fırsatından etkileniyorsunuz. Bu projelerin uygulanması zordur ve çok fazla zaman ve azim gerektirir, ancak tamamlandığında istediğinizi elde edeceksiniz: yeni başlayanlar için değerli Arduino tasarım deneyimi.

Çoğu elektronik mühendisi, projelerini daha önce birkaç kez yazdığımız bir mikrodenetleyiciye dayalı olarak oluşturmayı tercih ediyor. Bir sonraki makalede yeni başlayanlar için elektronik cihazların basit tasarımlarına ve bahsedilen mikrodenetleyiciye dayalı en sıra dışı projelere bakacağız.

Öncelikle, çoğu projenin üzerine inşa edildiği Arduino Uno mikroişlemcisinin işlevselliğini tanımaya değer ve ayrıca bu cihazı seçmenin nedenlerini de göz önünde bulundurmalısınız. Acemi bir mucidin Arduino uno'yu seçmesinin nedenleri aşağıdadır:

  1. Kullanımı oldukça kolay arayüz. Kontağın nerede olduğu ve bağlantı kablolarının nereye takılacağı açıktır.
  2. Karttaki çip doğrudan USB bağlantı noktasına bağlanır. Bu kurulumun avantajı seri iletişimin zamana karşı dayanıklı çok basit bir protokol olması ve USB'nin modern bilgisayarlara bağlanmayı çok kolay hale getirmesidir.
  3. ATmega328 yongası olan mikro denetleyicinin orta kısmını bulmak kolaydır. Zamanlayıcılar, harici ve dahili kesintiler, PWM pinleri ve çoklu uyku modları gibi daha fazla donanım özelliğine sahiptir.
  4. Cihaz açık kaynak olduğundan çok sayıda radyo amatörleri hataları ve sorunları çözebilir. yazılım. Bu, projelerde hata ayıklamayı kolaylaştırır.
  5. Saat hızı 16 MHz'dir ve bu çoğu uygulama için yeterince hızlıdır ve mikro denetleyiciyi hızlandırmaz.
  6. İçerisindeki gücü kontrol etmek oldukça kullanışlıdır ve dahili voltaj regülasyon özelliğine sahiptir. Mikrodenetleyicinin bağlantısı harici bir güç kaynağı olmadan da USB bağlantı noktasından çıkarılabilir. 12 V'a kadar harici bir güç kaynağı bağlayabilirsiniz. Ayrıca, gerekli voltajı mikroişlemcinin kendisi belirleyecektir.
  7. 13 dijital kontak ve 6 analog kontak kullanılabilirliği. Bu pinler, ekipmanı üçüncü taraf medyadan Arduino uno kartına bağlamanızı sağlar. Pimler, Arduino uno'nun bilgi işlem gücünü gerçek dünyada genişletmek için bir anahtar olarak kullanılır. Elektronik cihazlarınızı ve sensörlerinizi bu pinlerin her birine karşılık gelen konektörlere bağlamanız yeterlidir.
  8. USB bağlantı noktasını atlamak ve doğrudan Arduino ile seri cihaz olarak arayüz oluşturmak için bir ICSP başlığı mevcuttur. Bu bağlantı noktası, çipin hasar görmesi ve artık bilgisayarınızda kullanılamaması durumunda sıfırlamak için gereklidir.
  9. Geliştirici kodunu depolamak için 32 KB flash belleğin varlığı.
  10. Karttaki LED, koddaki hataları hızlı bir şekilde ayıklamak ve süreci basitleştirmek için dijital pin 13'e bağlanır.
  11. Son olarak çip üzerinde programı sıfırlamak için bir düğme bulunur.

Arduino, 2005 yılında iki İtalyan mühendis David Cuartilles ve Massimo Banzi tarafından, öğrencilerin Arduino uno mikrodenetleyicisini nasıl programlayacaklarını öğrenmelerine, elektronik becerilerini geliştirmelerine ve bunları gerçek dünyada kullanmalarına olanak sağlamak amacıyla oluşturuldu.

Arduino uno algılayabilir çevreçeşitli sensörlerden girdi alarak çevreyi ve diğer aktüatörleri etkileyebilir. Mikrodenetleyici, Arduino programlama dili (kablolama tabanlı) ve Arduino geliştirme ortamı (işlem tabanlı) kullanılarak programlanır.

Şimdi doğrudan Arduino uno üzerindeki projelere geçelim.

Yeni başlayanlar için en kolay proje

Bu işe yeni başlayanların bile yapabileceği birkaç basit ve ilginç Arduino uno projesine bakalım: alarm sistemi.

Bu projeyle ilgili zaten bir ders yaptık -. Kısaca ne yapıldığı ve nasıl yapıldığı hakkında.

Bu projede, hareketleri ve tiz emisyonları tespit etmek için bir hareket sensörü ve yanıp sönen LED ışıklardan oluşan görsel bir ekran kullanılıyor. Projenin kendisi size Arduino Başlangıç ​​Kitinde bulunan çeşitli eklentilerin yanı sıra NewPing kullanmanın nüanslarını tanıtacak.

Sonar mesafe sensörünüzü kontrol etmenize ve test etmenize yardımcı olan bir Arduino kütüphanesidir. Tam olarak ev koruması olmasa da yatak odası ve banyo gibi küçük alanların korunması için ideal bir çözüm sunuyor.

Bu proje için siz ihtiyaç olacak:

  1. Ultrasonik ping sensörü – HC-SR04.
  2. Piezo zil sesi.
  3. LED Şerit Işığı.
  4. RGB şerit kullanarak otomotiv aydınlatması. Bu Arduino proje eğitiminde, Arduino uno kartını kullanarak RGB araba iç aydınlatmasının nasıl yapıldığını öğreneceksiniz.

Birçok otomobil tutkunu ekstra ışık eklemeyi veya iç ampulleri LED'lere yükseltmeyi sever, ancak Arduino platformuyla güçlü LED'leri ve ışık şeritlerini çalıştırarak daha fazla kontrolün ve ayrıntının keyfini çıkarabilirsiniz.

kullanarak aydınlatma rengini değiştirebilirsiniz. Android cihazlar(telefon veya tablet) uygulamayı kullanarak " Bluetooth RGB Denetleyici" (Dev Next Prototypes) adresinden ücretsiz olarak indirebilirsiniz. Android Oynatma Mağaza. Ayrıca bir EasyEDA elektronik devre bulabilir veya PCB üzerinde kendi Arduino tabanlı devrenizi sipariş edebilirsiniz.

Şaşırtıcı Arduino Uno Projeleri

Arduino uno üzerinde elektronik projeler geliştirme alanındaki profesyonellerin çoğu denemeyi sever. Sonuç olarak, aşağıda tartışılan ilginç ve şaşırtıcı cihazlar ortaya çıkıyor:

  1. Hoparlör sisteminize IR uzaktan kumanda ekleme. Tüketici elektroniğinde uzaktan kumanda uzaktan kumanda bir bileşendir elektronik cihaz Cihazı kısa mesafeden kablosuz olarak kontrol etmek için kullanılan TV, DVD oynatıcı veya diğer ev aletleri gibi. Uzaktan kumanda her şeyden önce insanlar için uygundur ve kontrollerin doğrudan çalıştırılmasına uygun olmayan cihazlarla çalışmanıza olanak tanır.
  2. Alarm. Doğru zamanı elde etmek için gerçek zamanlı saat kullanılır. Burada bu sistem LCD ekranda tarih ve saati gösteriyor ve kontrol butonlarını kullanarak alarmı ayarlayabiliyoruz. Alarm zamanı geldiğinde sistem sesli bir sinyal verir.
  3. Step motor. her seferinde bir adım döndürülebilen hassas bir motor anlamına gelir. Böyle bir cihaz robotik, 3 boyutlu yazıcılar ve CNC makineleri kullanılarak yapılır.

    Bu proje için bulabileceğiniz en ucuz step motoru alın. Motorlar çevrimiçi olarak mevcuttur. Bu proje, diğer benzer projelerin çoğuna uygun olan 28byj-48 adımsayar kullanıyor. Arduino kartına bağlanmak kolaydır.
    - Dişi-erkek konnektörlü 6 kabloya ihtiyacınız olacak. Sadece motoru panoya bağlamanız yeterli, hepsi bu! Dönme hareketi ürettiğini görmek için dönen kafaya küçük bir bant parçası da ekleyebilirsiniz.

  4. Ultrasonik mesafe sensörü. Bu proje, cihazın engellerden kaçınabilmesi ve farklı yönlerde hareket edebilmesi için popüler olanı kullanıyor.

Çalışmanızı bitirdiğinizde eylemlerinizin sonucu ekranda görünecektir. İşleri basit ve net tutmak için I2C dönüştürücülü bir LCD kullanılması tavsiye edilir, bu nedenle Arduino kartına bağlanmak için yalnızca 4 kabloya ihtiyacınız vardır.

Beyin kursu genç programlama savaşçısı arduino veya bu platformla tanışmaya nereden başlamalı?

“Nereden başlamalı Majesteleri? - O sordu. Kral önemli bir şekilde "Baştan başlayın" diye yanıtladı..." (C) Lewis Carroll Alice Harikalar Diyarında

Adım 1: En baştan başlayalım ya da Arduino özgür olsaydı ne kadar güzel olurdu

Tonlarca ders kitabı okudum arduino, bir akvaryumdaki balıkların beslenmesinin otomatikleştirilmesinden kişisel bir çim için robot ekim makinesine kadar günlük yaşamda bu şey için bir dizi yararlı uygulama bulduğumuzda, şunu anlıyoruz: arduino geçinemiyoruz!

Bir denetleyici satın aldıktan sonra, bir panomuz olduğunu ancak birçok fikrimiz olduğunu anlıyoruz. Ne yapalım? Zeki bizi doğru karara götürür.

Arduino'yu klonlamanız gerekiyor kendi ellerinle!

Adım 2: İhtiyacınız olan her şeyi toplayın

Kullanacağımız süreci hızlandırmak için geliştirme kurulu. Kontrolörün teknik parametrelerinden bilindiği üzere ATmega 328 entegresi, minimum konfigürasyonda çalıştırmak için ihtiyacımız var:

- denetleyici Arduino Duemilanove(programcı olarak kullanılacaktır);
- mikro devre ATmega 328 entegresi ;
− 16 MHz kuvars rezonatörü;
− dirençler 100 Ohm 3 adet;
- kapasitörler 22pF 2 adet;
− Kırmızı, yeşil ve sarı renkte parlayan LED'ler 3 adet;
− 5 Volt voltaj dengeleyici, örneğin 7805;
- bağlantı için konnektörü olan herhangi bir 9 pil;
- USB kablosu;
- yazılım paketinin yüklü olduğu bilgisayar veya dizüstü bilgisayar Arduino IDE'si;
− devre tahtası ve teller.

3. Adım: Düzeni Başlatın



Kontrol çipini devre tahtasına yerleştiriyoruz.

Adım 4: Gerilim dengeleyiciyi ve güç devrelerini kurun

L7805 voltaj dengeleyiciyi karta takıyoruz. Mikro devre pinlerinin kullanım amacı 1 girişli (7-20 Volt), 2 kasalı, 3 çıkışlı (5 Volt). Montaj kablolarını kullanarak dengeleyiciyi fotoğraflarda gösterildiği gibi güç kaynağına ve denetleyiciye bağlarız.

5. Adım: Gücü denetleyiciye bağlayın

Kontrol cihazı pinlerinin numaralandırmasına uygun olarak montaj kabloları ile voltaj dengeleyicinin çıkışına ve ortak kabloya bağlarız.

İpucu: Kurulum kablolarının yalıtım renkleri farklıdır; her devre için aynı renkteki kabloları kullanmaya çalışın.

Adım 6: Kuvars rezonatörünü bağlayın



Tahtaya bir rezonatör ve salınım devresinin kapasitörlerini yerleştiriyoruz.

Kurulum prosedürü aşağıdaki gibidir:

− toprak ile kontrolörün 9. ayağı arasına 22pF'lik bir kapasitör yerleştiriyoruz;
− toprak ile kontrolörün 10. ayağı arasına 22pF'lik bir kapasitör yerleştiriyoruz;
- kontrolörün 9 ve 10 numaralı ayakları arasındaki rezonatörü açıyoruz;
− Kontrolörün 1 ayağı ile +5V arasına 10 kOm'luk bir direnç bağlarız (“Reset” sinyalini atlarız).

7. Adım: Denetleyici Durum Göstergelerini Ekleyin

LED'leri toprak ile programlayıcımız arasına 100 Ohm dirençlerle seri olarak bağlıyoruz.

Adım 7: Breadboard'u programlayıcı kartına bağlayın


Birleştirilmiş devre tahtasının tahtaya bağlanması Arduino Duemilanove Aşağıdaki şekilde:

− sarı LED'in çıkışını 9 programlayıcı konektöründeki çıkış, titreşimi bize programlayıcının çalıştığını gösterecektir;
− kırmızı LED çıkışını 8 programlayıcı konektöründeki çıktı, olası hataları bildirir;
− yeşil LED'in çıkışını 7 Programlayıcı konnektöründeki pinin parlaması, programcı ile mikrodenetleyici arasındaki veri alışverişini gösterir.

Güç kablolarını bağlamayı unutmadan, şekilde görüldüğü gibi kalan kablolarla kartlarımızı birbirine bağlıyoruz. + 5V Ve çerçeve onların arasında.

Adım 8: Arduino Duemilanove Kartını Programlayıcıya Dönüştürme

Mikrodenetleyiciye yüklemek için ATmega 328entegre devreönyükleyicinin bizimkine dönüştürülmesi gerekiyor Arduino Duemilanove programcıya girin. Montajımızı bilgisayara kullanarak bağlarız USB kablo. AndurinoIDE programlama ortamını açın, içindeki taslağı (programı) seçin AndurinoISP ve Arduino Duemilanove'ye yükleyin. Sarı LED'in yanıp sönmesiyle çizimin programlayıcımıza yüklendiğinden emin oluyoruz.

Adım 9: Önyükleyiciyi yükleyin

AndurinoISP'de (menü öğesi « Tharika") ihtiyacımız olan denetleyici türünü seçin ( ATmega 328 IC). Önyükleyiciyi yükleme komutunu veriyoruz "Önyükleyiciyi yak". Önyükleyici yüklemeyi tamamladıktan sonra AndurinoIDE mesajlarını izliyoruz " Tamamlandı Önyükleyicinin yakılması" mikrodenetleyicimiz yeni projemizin taslağını kaydetmeye hazır ev yapımı ürünler.

Adım 10: Olası sorunlar ve çözümler






Bir önyükleyiciyi kaydederken olası hatalar ve bunların nasıl ortadan kaldırılacağı yukarıdaki hata ayıklayıcı ekran görüntülerinde gösterilmektedir.

Bu makale programlamanın tam bir açıklaması olma iddiasında değildir. "sıfırdan" mikrodenetleyici, ancak minimum sayıda öğe kümesi kullanarak nasıl "kendinizinkini" yapmaya başlayabileceğinizi gösterir Andurino.


Tepe