kategoriler: Öne Çıkan Makaleler » Pratik Elektronik
Görüntülenme sayısı: 67360
Makaleye yorum: 7
Yeni başlayanlar için Arduino'yu bağlama ve programlama
Mikrodenetleyicileri incelemek karmaşık ve anlaşılmaz görünüyor mu? Arudino'nun ortaya çıkmasından önce, gerçekten kolay değildi ve belirli bir programcı ve diğer ekipman seti gerektiriyordu.
Arduino nedir?
Bu bir tür elektronik kurucudur. Projenin ilk amacı, insanların elektronik cihazların nasıl programlanacağını kolayca öğrenmelerine ve aynı zamanda elektronik parçaya minimum zaman ayırmasına izin vermektir.
En karmaşık devrelerin montajı ve panoların bağlantısı bir havya olmadan ve çıkarılabilir bağlantılı “baba” ve “anne” jumperların yardımıyla gerçekleştirilebilir. Bu şekilde, arduinistlerin sözlüğünde basitçe “Kalkanlar” olarak adlandırılan hem ekler hem de genişletme kartları bağlanabilir.

Bir acemi için ilk satın alan Arduino kartı nedir?
Taban ve en popüler tahta kabul edilir Arduino uno. Bu ücret kredi kartına benzer. Oldukça büyük. Satışta olan çoğu kalkan onun için mükemmel. Kartta harici cihazları bağlamak için soketler bulunur.

2017 için yerli mağazalarda fiyatı yaklaşık 4-5 dolar. Modern modellerde Atmega328 onun kalbidir.
Her pin, Arduino UNO pinout Arduino kurulu görüntü ve fonksiyon kod çözme
Bu karttaki mikrodenetleyici, DIP28 paketindeki uzun bir çiptir, yani 28 bacağı vardır.
Bir sonraki en popüler tahta bir öncekinden neredeyse iki kat daha ucuz - 2-3 dolar. Yönetim kurulu bu Arduino Nano. Gerçek kartlar aynı Atmega328 tarafından inşa edildi, fonksiyonel olarak UNO'ya, boyut farklılıklarına ve USB ile eşleşme kararına daha çok benziyorlar. Başka bir fark, cihazları devre kartına bağlamak için iğneler şeklinde bir fişin sağlanmasıdır.

Bu kartın pin (bacak) sayısı aynıdır, ancak mikrodenetleyicinin daha kompakt bir TQFP32 paketinde yapıldığını gözlemleyebilirsiniz, ADC6 ve ADC7 kasaya eklenir, diğer iki “ekstra” bacak güç barasını çoğaltır. Boyutları oldukça kompakttır - elinizin başparmağının büyüklüğü hakkında.
Üçüncü en popüler tahta Arduino Pro Mini, bir bilgisayara bağlanmak için bir USB bağlantı noktası yok, size biraz sonra nasıl iletişim kuracağınızı anlatacağım.

Arduino Nano vs Pro Mini Boyut Karşılaştırma
Bu, düşünülen en küçük tahtadır, aksi takdirde önceki ikisine benzer ve Atmega328 hala kalbidir. Diğer kurulları dikkate almayacağız, çünkü bu yeni başlayanlar için bir makale ve panoların karşılaştırması ayrı bir makalenin konusudur.
Arduino Pro Mini pin çıkışı, üst kısımda, USB-UART bağlantı şeması, “GRN” pimi - mikrodenetleyici sıfırlama devresine bağlanır, daha sonra öğrenmeniz gereken farklı şekilde çağrılabilir.
sonuçlar:
UNO prototipleme için uygunsa, Nano ve Pro Mini projenizin son sürümleri için uygundur, çünkü az yer kaplarlar.

Arduino bir bilgisayara nasıl bağlanır?
Arduino Uno ve Nano bir bilgisayara USB yoluyla bağlanır. Aynı zamanda, USB bağlantı noktası için donanım desteği yoktur, burada genellikle USB-Seri veya USB-UART (rs-232) adı verilen seviye dönüşümü için bir devre çözümü kullanılır. Aynı zamanda, mikrodenetleyiciye özel bir Arduino önyükleyici yanıp söner, bu da bu otobüslerde yanıp sönmeye izin verir.
Arduino Uno'da, bu ligatür USB destekli bir mikrodenetleyici üzerine uygulanır - ATmega16U2 (AT16U2). Ana mikrodenetleyicinin yanıp sönmesi için karttaki ek mikrodenetleyiciye ihtiyaç duyulduğu ortaya çıkıyor.
Arduino Nano'da, FT232R yongası veya analog CH340 tarafından uygulanır. Bu bir mikrodenetleyici değil - bir seviye dönüştürücüdür, bu gerçek Arduino Nano'yu kendi ellerinizle sıfırdan monte etmeyi kolaylaştırır.
Arduino kartı bağlandığında, sürücüler otomatik olarak kurulur. Bununla birlikte, Arduino Nano'nun Çince bir kopyasını aldığımda, cihaz tanındı, ancak işe yaramadı, dönüştürücüye çıkış tarihinde veriler içeren yuvarlak bir etiket yapıştırıldı, bilerek yapılmış olup olmadığını bilmiyorum, ancak soyulduktan sonra CH340 işaretini gördüm.
Bundan önce, bununla karşılaşmadım ve tüm USB-UART dönüştürücülerin FT232 üzerine monte edildiğini düşündüm, sürücüleri indirmek zorunda kaldım, “Arduino ch340 sürücüsü” isteği ile bulmak çok kolay. Basit bir kurulumdan sonra - işe yaradı!
Aynı USB bağlantı noktası üzerinden mikrodenetleyici de çalıştırılabilir, yani. bir cep telefonundan adaptöre bağlarsanız, sisteminiz çalışır.
Kartımda USB yoksa ne yapmalıyım?
Arduino Pro Mini daha küçük. Bu, bellenim için USB konektörünün ve aynı USB-UART dönüştürücüsünün çıkarılmasıyla başarıldı. Bu nedenle, ayrıca satın alınmalıdır. CH340 (en ucuz), CPL2102 ve FT232R'deki en basit dönüştürücü, satış fiyatı 1 $ 'dan.
Satın alırken, bu adaptörün hangi voltaj için tasarlandığına dikkat edin. Pro mini, 3.3 ve 5 V sürümlerinde mevcuttur, besleme voltajını değiştirmek için genellikle dönüştürücüler üzerinde bir jumper bulunur.

Pro Mini'yi yanıp sönerken, başlamadan hemen önce RESET'e tıklamanız gerekir, ancak DTR'li dönüştürücülerde bunu yapmanıza gerek yoktur, aşağıdaki şekilde bağlantı şeması.

Bunlara özel terminaller "Mama-Mama" (kadın-kadın) eşlik ediyor.

Aslında, tüm bağlantılar bu terminaller (Dupont) kullanılarak yapılabilir, her ikisi de soketli ve fişli iki tarafta ve soketin bir tarafında ve diğer fişte.

Arduino için programlar nasıl yazılır?
Eskizlerle çalışmak için (bellenimin adı arduino dilinde), Arduino IDE'yi geliştirmek için özel bir entegre ortam var, resmi web sitesinden veya herhangi bir tematik kaynaktan ücretsiz olarak indirebilirsiniz, genellikle yüklemede sorun yoktur.
Program arayüzü böyle görünüyor. Arduino için özel olarak geliştirilmiş basitleştirilmiş C AVR dilinde programlar yazabilirsiniz, aslında Wiring adında bir kütüphaneler dizisinin yanı sıra saf C AVR'de de yazabilirsiniz. Bunu kullanmak kodu kolaylaştırır ve çalışmasını hızlandırır.
Pencerenin üstünde dosyayı, ayarları açabileceğiniz, birlikte çalıştığınız kartı (Uno, Nano ve diğerleri gibi) seçebileceğiniz ve hazır kod örnekleri ile projeleri açabileceğiniz tanıdık bir menü vardır. Aşağıda, ürün yazılımı ile çalışmak için bir dizi düğme bulunur, aşağıdaki şekilde göreceğiniz tuşlar.

Pencerenin altında proje, kodun durumu, bellenim ve hatalar hakkında bilgi görüntülemek için bir alan bulunur.
Arduino IDE programlama temelleri
Kodun başında, değişkenleri bildirmeniz ve ek kitaplıkları bağlamanız gerekir, eğer varsa, bu aşağıdaki gibi yapılır:
#inclite biblioteka.h; // kütüphaneyi “Biblioteka.h” adıyla bağlayın
#define peremennaya 1234; // 1234 değerine sahip bir değişkeni bildirme
Define komutu, derleyicinin değişken türünü seçmesine izin verir, ancak bunu manuel olarak ayarlayabilirsiniz, örneğin bir tamsayı int veya bir kayan nokta kayan nokta.
int liderliğindeki = 13; // “led” değişkenini yarattı ve ona “13” değeri verdi
Program pimin durumunu 1 veya 0 olarak belirleyebilir. 1 mantıksal bir birimdir, pim 13 1 ise, fiziksel bacağındaki voltaj mikrodenetleyicinin besleme voltajına eşit olacaktır (arduino UNO ve Nano - 5 V için)
Dijital sinyal, digitalWrite komutu (pin, değer) kullanılarak kaydedilir, örneğin:
digitalWrite (ledli, yüksek); // üniteyi 13 numaralı pime (yukarıda açıkladık) günlüğüne yaz. Birimi.
Anlayacağınız gibi, bağlantı noktalarına erişim tahtadaki numaralandırma ile karşılık gelen şekildir. Önceki koda benzer bir örnek:
digitalWrite (13; yüksek); // iğne 13'ü bire ayarlayın
Genellikle aranan gecikme süresi fonksiyonu, değeri milisaniye olarak ayarlanan delay () komutu ile çağrılır, mikrosaniye kullanılarak
delayMicroseconds () Gecikme (1000); // mikrodenetleyici 1000 ms (1 saniye) bekleyecek
Giriş ve çıkış için port ayarları void setup {} işlevinde şu komutla ayarlanır:
void setup () {
pinMode (NOMERPORTA, ÇIKIŞ / GİRİŞ); // argümanlar - seçim için değişken adı veya port numarası, giriş veya çıkış
}
Boş döngü {}
İlk Blink programını anlama
Mikrodenetleyiciler için bir çeşit "Merhaba dünya" olarak, bir LED yanıp sönen program var, kodunu analiz edelim:
Başlangıçta, pinMode komutuyla mikrodenetleyiciye çıkışa LED'li bir port atamasını söyledik.Kodun “LED_BUILTIN” değişkenini açıklamadığını zaten fark ettiniz, gerçek şu ki Uno, Nano ve fabrikadaki diğer kartlarda, dahili LED pim 13'e bağlı ve panoya lehimleniyor. Projelerinizdeki gösterge veya yanıp sönen programlarınızın en basit kontrolü için sizin tarafınızdan kullanılabilir.
Daha sonra, LED'in birliğe lehimlendiği çıkışı (5 V) ayarlıyoruz, bir sonraki satır MK'nin 1 saniye beklemesini sağlıyor ve ardından LED_BUILTIN pimini sıfıra ayarlıyor, bir saniye bekliyor ve program bir daire içinde tekrarlanıyor, bu yüzden LED_BUILTIN 1 olduğunda - LED ( ve porta bağlı diğer yükler) açılır, 0'da kapatılır.
Her şey çalışıyor mu ve her şey açık mı? Sonra devam et!
Analog porttan değeri okuyoruz ve okunan verileri kullanıyoruz
Atmega328 AVR mikrodenetleyici yerleşik 10 bit analog-dijital dönüştürücüye sahiptir. 10 bitlik ADC, 0 ila 5 volt arasındaki voltaj değerini, sinyalin tüm genlik aralığının (5 V) 1 / 1024'lük artışlarıyla okumanızı sağlar.
Daha net hale getirmek için, durumu düşünün, analog girişteki voltaj değerinin 2,5 V olduğunu varsayalım, daha sonra voltaj 0 - "0" ise ve 5 V - (1023) ise mikrodenetleyici "512" pin değerini okuyacaktır. 1023 - çünkü sayı 0'dan, yani 0, 1, 2, 3 vb. 1023'e kadar - toplam 1024 değer.
Örnek olarak “analogInput” standart çizimini kullanarak kodda nasıl göründüğü aşağıda açıklanmıştır
int sensorPin = A0;
int ledPin = 13;
int sensorValue = 0;
void setup () {
pinMode (ledPin, OUTPUT);
}
void loop () {
sensorValue = analogRead (sensorPin);
digitalWrite (ledPin, YÜKSEK);
gecikme (sensorValue);
digitalWrite (ledPin, DÜŞÜK);
gecikme (sensorValue);
}

Potansiyometrenin Arduino'ya bağlantı şeması, analog olarak, herhangi bir analog girişe bağlayabileceğiniz merkezi çıkış.
Değişkenleri bildir:
-
Ledpin - bağımsız olarak çıkışa dahili LED'li bir pim atayın ve bireysel bir ad verin;
-
sensorPin - anakart üzerindeki işarete göre ayarlanan analog giriş: A0, A1, A2, vb.
-
sensorValue - tamsayı okuma değerini saklamak ve onunla daha fazla çalışmak için bir değişken.
Kod şu şekilde çalışır: sensorValue sensorPin (analogRead komutu) ile okunan analog değeri kaydeder. - burada analog sinyal ile çalışma sona erer, o zaman her şey bir önceki örnekteki gibidir.
Üniteyi ledPin'de yazıyoruz, LED yanıyor ve sensorValue değerine eşit bir süre bekleyin, yani. 0 ila 1023 milisaniye. LED'i kapatın ve bu süre boyunca tekrar bekleyin, ardından kod tekrarlanır.
Böylece, potansiyometrenin konumu ile LED'in yanıp sönme frekansını ayarladık.
Arudino için harita fonksiyonu
Aktüatörlerin tüm işlevleri (hiç bilmiyorum) bir argüman olarak “1023” ü desteklemez, örneğin, servo dönüş açısı ile sınırlıdır, yani servo motorun yarım devri (180 derece) (yarım devir) ile, fonksiyonun maksimum argümanı “180” dir.
Şimdi sözdizimi hakkında: harita (çevirdiğimiz değer minimum giriş değeri, maksimum giriş değeri, minimum çıkış değeri, maksimum çıkış değeridir).
Kodda şöyle görünür:
(harita (analogOkuma (tencere), 0, 1023, 0, 180));
Potansiyometre (analogRead (pot)) değerini 0 ila 1023 arasında okuyoruz ve çıkışta 0 ila 180 arasında rakamlar alıyoruz
Değer Haritası Değerleri:
-
0=0;
-
1023=180;
Uygulamada, bunu aynı servo kodunun çalışmasına uyguluyoruz, Arduino IDE ile koda bir göz atın, önceki bölümleri dikkatlice okursanız, açıklama gerektirmez.

Ve bağlantı şeması.

Sonuçlar Arduino, mikrodenetleyicilerle nasıl çalışılacağını öğrenmek için çok uygun bir araçtır. Saf C AVR kullanırsanız veya bazen “Saf C” olarak adlandırılırsa, kod ağırlığını önemli ölçüde azaltacak ve mikrodenetleyicinin belleğine daha fazla sığacaksınız, sonuç olarak USB ürün yazılımı ile fabrikada mükemmel bir hata ayıklama kartı alacaksınız.

Yazarın görüşü:
Arduino'yu seviyorum. Birçok deneyimli mikrodenetleyici programcının bunu makul olmayan bir şekilde eleştirmesi, çok basitleştirilmiş olması üzücü. Prensip olarak, sadece dil basitleştirilmiştir, ancak kimse onu kullanmaya zorlamaz, ayrıca mikro denetleyiciyi ICSP konektörü aracılığıyla yanıp sönebilir ve ihtiyacınız olmayan herhangi bir önyükleyici olmadan istediğiniz kodu doldurabilirsiniz.
Gelişmiş bir kurucu olarak elektronik ile oynamak isteyenler için mükemmel, ancak deneyimli programcılar için montaj gerektirmeyen bir tahta da yararlı olacaktır!
Arduino ve çeşitli şemalarda kullanım özellikleri hakkında daha fazla bilgi için e-kitaba bakınız -Aptallar için Arduino. Resimli pratik rehber.
Ayrıca bkz. electro-tr.tomathouse.com
: