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.

Arduino nedir?

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.

Arduino uno

2017 için yerli mağazalarda fiyatı yaklaşık 4-5 dolar. Modern modellerde Atmega328 onun kalbidir.

Arduino uno

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.

Arduino Nano

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.

Aruino nano pinout 

Üçü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

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.

Yeni başlayanlar için Arduino

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.

Arduino Pro Mini

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ı.

Yazılım için bağlantı şeması

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

Arduino Bağlantısı

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.

fiş

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.

Arduino Programı

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.

Program arayüzü

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ış

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ı.

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.

Yeni başlayanlar için Arduino

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:

  • Arduino I / O portlarını okuma ve yönetme yöntemleri
  • Hangi Arduino kartı seçilecek
  • AVR mikrodenetleyicilerinin çeşitleri ve düzenlenmesi
  • Mikrodenetleyici Uzaktan Kumanda: IR Uzaktan Kumanda, Arduino, ESP8266, 433 ...
  • Analog sensörleri Arduino ya bağlama, sensörleri okuma

  •  
     
    Yorumlar:

    # 1 şunu yazdı: ELECTROMAG | [Cite]

     
     

    Programlama kodunu incelemek için hangi literatürü öneriyorsunuz?

     
    Yorumlar:

    # 2 şunu yazdı: Andrew | [Cite]

     
     

    ELECTROMAGUlli Sommer. Arduino / Freeduino Mikrodenetleyici Kurulu Programlama, Jeremy Bloom. Arduino üzerinde çalışıyoruz. Teknik Büyü için Araç ve Teknikler, John Boxell. Arduino üzerinde çalışıyoruz. 65 kendin yap projesi. Arduino hakkında ozon hakkında kitaplar: electro-bg.tomathouse.com/arduino_books.php

     
    Yorumlar:

    # 3 şunu yazdı: galip | [Cite]

     
     

    Çok ilginç ve heyecan verici malzeme, teşekkürler!

     
    Yorumlar:

    # 4 şunu yazdı: Ural | [Cite]

     
     

    Bilgi için teşekkürler, "harita" işlevi çok kullanışlı oldu, ben sadece Arduino oyuncaklar öğrenmeye başlayarak, nasıl dolaşmak merak ettim.

     
    Yorumlar:

    # 5 şunu yazdı: Dima | [Cite]

     
     

    Comp-otobüsler için - yığınlar, çok popüler bir arayüz olsa da, mil-std-1553b üzerinde paylaşmak için arduino kalkanları için bulamadığım bir şey. Nereden arama-satın alabilirsiniz poke.

    Not; makalenin tarihi görüntülenmiyor - belki 10 yaşındadır ve zaten yorum yazmamalıdır?

     
    Yorumlar:

    # 6 şunu yazdı: Eremino | [Cite]

     
     

    Arduino'da 4 veya herhangi bir sayıda çıkış için bir giriş sinyali tekrarlayıcı nasıl yapılır.

    Benzer şekilde 16 giriş kanalına 4 giriş kanalı ile yapın. Bu durumda, girişi her bir giriş kanalında aynı anda 4 çıkışa değiştirmeniz gerekir.

     
    Yorumlar:

    # 7 şunu yazdı: Oleg | [Cite]

     
     

    Beyler, söyle bana, nerede programlamayı öğrendin? Çok fazla bilgiyi inceledim ve kimse net bir şekilde yazamadı. Burada, tüm bilgiler yeni başlayanlar için değil, gerçekten çok açık değil, abartısız. Hakkında bir kelime olmayan birçok kelime yazıldı, örneğin, yazar başlangıçta kütüphaneyi duyurmanız ve #include biblioteka.h; // ama bu kelime hakkında hiçbir şey yazmadı # dahil tüm bunları anlamak mümkün. Ben zaten sabırsızım, hiç kimse normal şekilde açıklayamaz ve açıklayabilir bu yüzden burada ne olacağını bunu yazmak gerekir. Tabii ki sıfır, ama okumaya çalışıyorum, anlaşılmaz bir şey görmüyorum, bu da gereksiz olanı açıklamıyor. Ve aptal bir aptal olmadığımı söyleyebilirim, neredeyse tüm elektroniği onarabilirim, yani, kafamla arkadaşım, ama bunu anlayamıyorum çünkü bilenleri yazıyorlar, ancak nüansları kendileri oyduklarında unutmuşlar.