Arduino bir programlama dilidir. Arduino programlama dili

İhtiyacın olacak

  • - Arduino UNO kartı,
  • - USB kablosu(USB A - USB B),
  • - Kişisel bilgisayar,
  • - Işık yayan diyot,
  • - 220 Ohm direnç,
  • - 5-10 cm'lik bir çift tel,
  • - varsa - devre tahtası.

Talimatlar

İşletim sisteminiz için Arduino geliştirme ortamını (Windows, Mac OS X, Linux desteklenir) http://arduino.cc/en/Main/Software adresinden indirin, kurulumunu yapabilirsiniz, yapabilirsiniz. İndirilen dosya ayrıca Arduino kartlarının sürücülerini de içerir.

Sürücüyü yükleyin. Windows işletim sistemi için bir seçenek düşünelim. Bunu yapmak için bekleyin işletim sistemi sürücüyü yüklemenizi ister. Reddetmek. Win + Duraklat'a basın, Aygıt Yöneticisi'ni başlatın. "Bağlantı Noktaları (COM ve LPT)" bölümünü bulun. Orada "Arduino UNO (COMxx)" adında bir bağlantı noktası göreceksiniz. Tıklamak sağ tık fareyi üzerine getirin ve "Sürücüyü Güncelle" yi seçin. Ardından, az önce indirdiğiniz sürücünün konumunu seçin.

Geliştirme ortamı, kurulun işleyişini incelemek için halihazırda birçok örnek içermektedir. Yanıp Sönme örneğini açın: Dosya> Örnekler> 01.Temel Bilgiler> Göz Kırp.

Geliştirme ortamına panonuzu söyleyin. Bunu yapmak için Araçlar> Pano'ya gidin ve "Arduino UNO" seçeneğini seçin.

Arduino kartının atandığı portu seçin. Kartın hangi porta bağlı olduğunu öğrenmek için cihaz yöneticisini başlatın ve Portlar (COM & LPT) bölümünü bulun. Bağlantı noktası, kart adından sonra parantez içinde belirtilecektir. Pano listede yoksa, bilgisayardan deneyin ve birkaç saniye bekledikten sonra tekrar deneyin.

Kartı bilgisayardan ayırın. Devreyi şekilde görüldüğü gibi kurunuz. Lütfen LED'in kısa bacağının GND pinine, uzun bacağının Arduino kartının dijital pin 13'ü olan bir direnç üzerinden bağlanması gerektiğini unutmayın. Bir breadboard kullanmak daha uygundur, ancak yoksa, telleri bükerek bağlayabilirsiniz.
Önemli Not! Dijital pim 13, kartta zaten kendi direncine sahiptir. Bu nedenle LED'i karta bağlarken harici bir direnç kullanılmasına gerek yoktur. LED'i diğer Arduino pinlerine bağlarken kullanılması zorunludur!

Artık programı kart belleğine yükleyebilirsiniz. Kartı bilgisayara bağlayın, kartın başlatılması için birkaç saniye bekleyin. "Yükle" düğmesine tıklayın, sizinki Arduino kartının hafızasına yazılacaktır. Arduino programlama çok sezgiseldir ve hiç de zor değildir. Resme bakın - programa yapılan yorumlarda küçük açıklamalar var. Bu, ilk denemenizle başa çıkmak için yeterlidir.

İlgili videolar

Not

Arduino kartını tutarken dikkatli olun - bu, dikkatli kullanım gerektiren elektronik bir üründür. Kartın alt kısmında çıplak iletkenler vardır ve kartı iletken bir yüzeye yerleştirirseniz kartın yanma ihtimali vardır. Ayrıca, tahtaya ıslak veya nemli ellerle dokunmayın ve çalışırken nemli alanlardan kaçının.

Faydalı tavsiye

İnternette birçok Arduino sitesi var. Oku, usta, denemekten ve yeni şeyler öğrenmekten korkma!

Kaynaklar:

  • yanıp sönen LED

Programlama birçok kişiyi çeker ve ilgilendirir modern insanlar, özellikle gelecekteki mesleklerini seçmeye yeni başlayan genç ve acemi uzmanlar. Genellikle şu soruyla karşı karşıya kalırlar - programlama öğrenmeye nereden başlamalı? Programlamayı öğrenmeye karar verirseniz, yaygın bir hata yapmamalısınız - hemen başlamayın. karmaşık sistemler ve diller (örneğin, C). Aşırı karmaşık bir dille başlamak size genel olarak yanlış programlama izlenimi verebilir. Yeni başlayanların en basit sistemlerle çalışması önerilir - örneğin, BASIC'te program yazmayı öğrenin. Bu dili öğrenmek başarmanızı sağlayacaktır. iyi sonuçlar... PureBasic'i öğrenmesi kolaydır - çok yönlü derlenmiş bir dildir. bol fırsatlar, programlamanın temellerini anlamanıza ve gelecekte becerilerinizi geliştirmenize yardımcı olacaktır.

Talimatlar

Programlamanın temellerini öğrenmeniz yaklaşık bir yılınızı alabilir. Prosedürel ve nesne yönelimli programlamanın özelliklerini, ikili ağaçlar, diziler, listeler vb. ile çalışma ilkelerini öğreneceksiniz. Sadece temel bilgileri öğrendikten sonra daha zor görevlere geçin.

Programlama dilleri geliştiricilerinin sitelerini ziyaret edin, belgeleri inceleyin. Programcıların forumlarında sohbet ettiğinizden emin olun, genellikle yeni başlayanların sorularının çoğuna cevap verirler.

Matematik

Programlamayı öğrenmek istiyorsanız, sadece matematik bilmeniz yeterlidir. Çalışma sürecinde, bu bilimin temellerini bilmeden çözülemeyecek çok sayıda problemle yüzleşmek zorundasınız. Var olmak çok sayıda programlama sürecini büyük ölçüde basitleştiren matematik, sistemler ve teoriler (Fourier serileri, Fibonacci sayıları, vb.).

Öğrenme bitmiyor

Programlama dillerinin evrimi durmuyor, gelişimleri devam ediyor. Çalışmayı planladığınız programlama alanında mümkün olduğunca çok literatür okumaya çalışın. Her zaman ortaya çıkan sorunlara alternatif çözümler arayın, bu, yarattığınız işin verimliliğini sürekli olarak artırmanıza yardımcı olacaktır. program kodu... Profesyonel programcılarla konuşun, onlar her zaman belirli bir sorunla nasıl başa çıkılacağı konusunda tavsiyede bulunabilirler. Programlarının kodlarını okumanız da size büyük fayda sağlayacaktır.
Her şeyi her zaman akılda tutmak imkansızdır. Programlama dili referansını kullanmaktan çekinmeyin.

Programlama görevleri, ne kadar basit olurlarsa olsunlar, asla bir çırpıda çözülmezler. Her zaman çalışılmaları gerekir doğru algoritma Bu özel durumda etkili olan eylemler. Optimum algoritmaları bulmak, sürekli uygulama ve eğitim gerektirir. Küçük programlama problemlerini daha sık çözmeye çalışın (bunları özel sitelerde bulabilirsiniz), bu, bu alandaki becerilerinizi yavaş yavaş geliştirmenize yardımcı olacaktır.

Arduino, kullanıma hazır bir geliştirme kartıdır ve program boyutu ve hızı pahasına mikrodenetleyicilerle başlamayı kolaylaştıran çok basit bir programlama dilidir. Atmel yakın zamanda Arduino önyükleyici için destek ekledi. AVR Stüdyosu, yani C ile yazılmış programları, hatta C++ veya Assembler'da bir programcı olmadan yazabilir ve yükleyebilirsiniz. Ayrıca AVR Studio'da İşleme / Kablolama kodunu yazabilirsiniz.
Sonunda güncelleme ile makaleyi okumaya başlamanızı tavsiye ederim!
Bu makalede, öneririz adım adım talimatlar AVR Studio kullanarak Arduino programlama yazılımını kurmak için. Temel olarak, easyelectronics.ru web sitesinden AVR Studio uzantılarına genel bir bakış aldık. Tüm örnekleri tahtamızda çalıştıracağız.

Arduino IDE'yi Kurmak

Arduino 1.5.2 sürümünü kullanıyoruz. Resmi web sitesinden indirebilirsiniz. En son sürüm (bu yazının yazıldığı sırada 1.6.2-r2) nedense Atmega8 mikrodenetleyici ile çalışmıyor.
Ortamın zaten konuşlandırılmış olduğu bir zip arşivi indireceksiniz. Geriye kalan tek şey onu program dizinine açmak.

Atmel Studio'yu Yükleme

UPD

Konunun popüler olduğunu izliyorum ve birkaç noktaya açıklık getirmek istiyorum.
Arduino uyumlu bir kartı C'de programlamaya çalıştığım üç yol var:

  1. Doğrudan Arduino IDE'ye C'de yazın. Processing / Wiring'in bir dil değil, sadece bir dizi makro ve kitaplık olduğunu anlamanız gerekir. İçine yazdığınızda, başlıklarına bakar, insan tarafından okunabilir kodunuzu C'ye dönüştürür ve ardından standart AVR GCC derleyicisiyle derler. Kodu C'ye yazarsanız, lib'lerine atıfta bulunmaz ve her şeyi olması gerektiği gibi derhal derler, AMA! ... ve linker projenize ne isterse onu ekler. Avantajı, Arduino IDE'den başka bir şeye ihtiyacınız olmamasıdır. Geliştiriciden gizlenen sihir eksikliği. Bu yöntem genellikle İtalyan arkadaşlarımızın kendi dillerinde sağlamadıkları bir işlevi uygulamak gerektiğinde kullanılır.
  2. Bu makalede önerilen yöntem (aslında en tuhafı, çünkü tüm dezavantajları birleştiriyor). İdeolojik olarak, Processing / Wiring'de programlamak ve Atmel Studio'ya bir arayüz olarak kullanmak için bu uzantıya ihtiyaç vardır. Ayrıca, kodda hata ayıklamanıza izin veren ücretli bir işlev de var, ancak denemedim. Yani aslında programlama yaparken her şey ilk seçenektekiyle aynı ama siz farklı bir IDE'de çalışıyorsunuz. Aynı zamanda, sonuç açısından aynı şeyi elde edersiniz. Arduino ile programladıysanız ve bunu C'de yapmaya karar verdiyseniz, doğrudan Arduino IDE'ye yazmaktan çekinmeyin. Arayüzü beğenmediyseniz normal bir editör kullanabilirsiniz (Sublime Text'i öneririm). Atnel Studio'da çalışıyorsanız ve kartınızı doğrudan arayüzünden flashlamak veya içine Processing / Wiring yazmak istiyorsanız (birdenbire!), O zaman bu eklenti tam size göre. Bu arada, stüdyo sadece Windows altında çalışıyor, yani yöntem hemen herkes için değil. Bu yazıyı sadece kendime yeni bir yol bulduğum için yazdım ama hoşuma gitmedi.
  3. Üçüncü yöntem bana ileri düzey bir kullanıcı için en iyisi gibi görünüyor. İlk başta her şey her zamanki gibi olur - kodu yazarsınız, derlersiniz ve bir hex dosyası alırsınız. Ardından, önyükleyicili sıradan bir hata ayıklama panosu tuttuğunuzu hatırlayarak, bu önyükleyiciye erişebilen bir yardımcı program indirir ve kodunuzu belleğe aktarırsınız. adım adım talimatları zaten belirledik. Bu durumda, geliştirici tüm işlevler üzerinde maksimum kontrol elde eder, ancak üçüncü taraf bir önyükleyicinin kullanılması nedeniyle sorunlar ortaya çıkabilir.

Arduino'da olan bir şeyi daha açıklamak istiyorum. Ne yaparsanız yapın, Arduino IDE kesinlikle çevre birimlerini kendi kendine açacaktır. Örneğin, zamanlayıcıları başlatacaktır. Ve onlarla C'de çalışmak istiyorsanız, beklediğiniz gibi çalışmadıklarını görebilirsiniz. Ve bu gerçek bir sorun olabilir. Ve bunun gibi birçok örnek var, yani birçok potansiyel tırmık, koltuk değneği ve böcek var.
Yalnızca bir hex dosyası yüklerseniz, yalnızca önyükleyici nedeniyle sorunlar ortaya çıkabilir. Şimdiye kadar sadece bir tane buldum - önyükleyici tamamlandıktan sonra UART etkin kalıyor. Arduino IDE üzerinden yazarsanız, devre dışı bırakma kodunu kodunuza ve kim bilir başka neler ekler. Sadece altıgeninizi çalıştırmak istiyorsanız, UART ayak kontrolünü alamazsınız. Projenize ellerinizle bir UART bağlantı kesmesi eklemeniz gerekecek. Bu yapıt ve kod örnekleri, içinde ayrıntılı olarak açıklanmıştır.
Sonuç olarak. Arduino uyumlu kartların çoğunda bir ISP programcısı için bir konektör bulunur. Bu programcıyı Çinlilerden 3-4 dolara alırsanız tüm bu sorunları çabucak unutacaksınız.

Kaynağımıza destek olup mağazamızı ziyaret ederseniz çok mutlu oluruz.

Bu yazıda, eksiksiz bir toplamaya karar verdim. adım adım rehber Arduino'ya yeni başlayanlar için. Bir arduino'nun ne olduğunu, ne öğrenmeye başlamanız gerektiğini, nereden indireceğinizi ve programlama ortamının nasıl kurulacağını ve yapılandırılacağını, nasıl çalıştığını ve bir programlama dilinin nasıl kullanılacağını ve tam teşekküllü oluşturmak için gereken çok daha fazlasını analiz edeceğiz. bu mikrodenetleyicilerin ailesini temel alan karmaşık cihazlar.

Arduino ile çalışmanın ilkelerini anlamanız için burada kısa bir minimum vermeye çalışacağım. Programlanabilir mikrodenetleyiciler dünyasına daha fazla dalmak için bu sitedeki diğer bölümlere ve makalelere dikkat edin. Bazı yönler hakkında daha ayrıntılı bir çalışma için bu sitedeki diğer materyallere bağlantılar bırakacağım.

Arduino nedir ve ne içindir?

Arduino, herkesin çeşitli elektro-mekanik cihazlar yaratmasına izin veren bir elektronik tasarımcıdır. Arduino, yazılım ve donanımdan oluşur. Yazılım bölümü bir geliştirme ortamı (firmware yazma ve hata ayıklama programı), birçok hazır ve kullanışlı kitaplık, basitleştirilmiş bir programlama dili içerir. Donanım kısmı, çok sayıda mikrodenetleyici ve onlar için hazır modüller içerir. Bu, Arduino ile çalışmayı çok kolaylaştırır!

Arduino yardımıyla programlama, elektrik mühendisliği ve mekanik öğrenebilirsiniz. Ancak bu sadece bir öğretim kurucu değildir. Buna dayanarak, gerçekten yapabilirsin kullanışlı cihazlar.
Basit yanıp sönen ışıklar, hava istasyonları, otomasyon sistemleri ile başlayıp sistemle biten akıllı ev, CNC takım tezgahları ve insansız hava araçları. Olasılıklar hayal gücünüzle sınırlı bile değil, çünkü uygulama için çok sayıda talimat ve fikir var.

Arduino Başlangıç ​​Seti

Arduino öğrenmeye başlamak için mikrodenetleyici kartının kendisini ve ek detayları edinmeniz gerekir. Bir Arduino başlangıç ​​kiti satın almak en iyisidir, ancak ihtiyacınız olan her şeyi kendiniz de seçebilirsiniz. Daha kolay ve genellikle daha ucuz olduğu için bir set seçmenizi tavsiye ederim. Keşfetmeniz için kesinlikle kullanışlı olacak en iyi kitlere ve bireysel parçalara bağlantılar:

Yeni başlayanlar için temel arduino seti:Satın almak
Eğitim ve ilk projeler için geniş bir set:Satın almak
Bir dizi ek sensör ve modül:Satın almak
Arduino Uno, hattan en basit ve kullanışlı modeldir:Satın almak
Kolay öğrenme ve prototip oluşturma için lehimsiz devre tahtası:Satın almak
Uygun konektörlere sahip bir dizi kablo:Satın almak
LED seti:Satın almak
Direnç kiti:Satın almak
Düğmeler:Satın almak
Potansiyometreler:Satın almak

Arduino IDE'si

Firmware yazmak, hata ayıklamak ve yüklemek için Arduino IDE'yi indirip kurmanız gerekir. Bu çok basit ve uygun program... Sitemde, geliştirme ortamını indirme, yükleme ve kurma sürecini zaten anlattım. Bu yüzden burada sadece bağlantılar 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ınız olduğunda ve bilgisayarınıza bir geliştirme ortamı kurulduğunda ilk eskizlerinizi (firmware) yazmaya başlayabilirsiniz. Bunun için programlama diline aşina olmanız gerekir.

Arduino programlama için önceden tanımlanmış fonksiyonlara sahip C++ dilinin basitleştirilmiş bir versiyonu kullanılı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 fonksiyon bildirmeden önce, fonksiyon tarafından döndürülen veri tipini veya fonksiyon bir değer döndürmüyorsa void'i belirtmelisiniz.
  • Değişkeni bildirmeden önce veri türünü de belirtmek gerekir.
  • Yorumlar belirtilir: // Satır içi ve / * Blok * /

Sayfada veri türleri, fonksiyonlar, değişkenler, operatörler ve dil yapıları hakkında daha fazla bilgi edinebilirsiniz. Tüm bu bilgileri ezberlemenize ve ezberlemenize gerek yok. Her zaman referans kitabına gidebilir ve bu veya bu işlevin sözdizimini görebilirsiniz.

Arduino için tüm bellenim en az 2 fonksiyon içermelidir. Bunlar setup() ve loop()'tur.

Kurulum işlevi

Her şeyin çalışması için bir eskiz yazmamız gerekiyor. Düğmeye bastıktan sonra LED yanacak ve bir sonraki basıştan sonra sönecek şekilde yapalım. İşte ilk skecimiz:

// bağlı cihazların pinlerine sahip değişkenler int switchPin = 8; int ledPin = 11; // butonun ve LED'in durumunu saklamak için değişkenler boolean lastButton = LOW; boolean currentButton = DÜŞÜK; boolean ledOn = yanlış; void setup () (pinMode (switchPin, INPUT); pinMode (ledPin, OUTPUT);) // sıçrama boolean debounse'u (son boolean) bastırma işlevi (boolean current = digitalRead (switchPin); if (son! = akım) (delay (5); akım = digitalRead (switchPin);) dönüş akımı;) void döngüsü () (currentButton = debounse (lastButton); if (lastButton == LOW && currentButton == YÜKSEK) (ledOn =! LedOn;) lastButton = currentButton ; digitalWrite (ledPin, ledOn);)

// bağlı cihazların pinlerine sahip değişkenler

int switchPin = 8;

int ledPin = 11;

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

boolean lastButton = DÜŞÜK;

boolean currentButton = DÜŞÜK;

boolean ledOn = yanlış;

geçersiz kurulum () (

pinMode (switchPin, INPUT);

pinMode (ledPin, OUTPUT);

// sıçramayı bastırma işlevi

boole geri dönüşü (son boole) (

boole akımı = digitalRead (switchPin);

if (son! = geçerli) (

gecikme (5);

akım = digitalRead (switchPin);

dönüş akımı;

boşluk döngüsü () (

currentButton = geri dönme (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 döndürme işlevi oluşturdum. Web sitemde bir temas sıçraması var. Bu materyali mutlaka okuyun.

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, LED'in parlaklığını sorunsuz bir şekilde değiştirebilirsiniz, ancak parlaklıktaki bu değişiklik voltajı azaltarak değil, düşük sinyalin aralıklarını artırarak elde edilir. PWM işleminin prensibi bu şemada gösterilmiştir:

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

Arduino, yerleşik bir darbe genişlik modülatörüne sahiptir. PWM'yi yalnızca mikrodenetleyici tarafından desteklenen pinlerde kullanabilirsiniz. Örneğin, Arduino Uno ve Nano'nun her biri 6 PWM pinine sahiptir: bunlar D3, D5, D6, D9, D10 ve D11 pinleridir. Diğer kartların farklı pinleri olabilir. İlgilendiğiniz panonun açıklamasını bulabilirsiniz

Arduino'da PWM'yi kullanmak için bir fonksiyon vardır: Argüman olarak bir pin numarası alır ve 0'dan 255,0'a kadar bir PWM değeri, yüksek bir sinyalle %0 doldurma ve 255 %100'dür. Örnek olarak basit bir eskiz yazalım. LED'in sorunsuz bir şekilde yanmasını, bir saniye beklemesini ve aynı şekilde sorunsuz bir şekilde sönmesini ve böylece sonsuza kadar devam etmesini sağlayalım. İşte bu işlevi kullanan bir örnek:

// LED pin 11'e bağlanır int ledPin = 11; void setup () (pinMode (ledPin, OUTPUT);) void döngüsü () ((int i = 0; i için)< 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ğlı

int ledPin = 11;

geçersiz kurulum () (

pinMode (ledPin, OUTPUT);

boşluk döngüsü () (

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

analogWrite (ledPin, i);

gecikme (5);

gecikme (1000);

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

Ardublock, Arduino için yeni başlayanlar için tasarlanmış bir grafik programlama dilidir. Bu ortamın kullanımı oldukça basittir, kurulumu kolaydır, neredeyse tamamı Rusça'ya çevrilmiştir. Blokları andıran görsel olarak oluşturulmuş bir program...

Kesintiler, çeşitli olaylar meydana geldiğinde harici cihazların kontrolör ile iletişim kurmasını sağlayan çok önemli bir Arduino mekanizmasıdır. Çizime bir donanım kesme işleyicisi kurarak, bir düğmeyi açıp kapatmaya, klavyeye basarak yanıt verebiliriz, ...

Serial.print () ve Seri.println (), bir arduino kartından bir bilgisayara seri port aracılığıyla bilgi aktarmak için ana Arduino işlevleridir. En popüler Arduino Uno, Mega, Nano kartların yerleşik bir ekranı yoktur, bu nedenle ...

Arduino kartı olmadan Arduino projeleri yapmak mümkün müdür? Oldukça çıkıyor. sayısız sayesinde çevrimiçi hizmetler ve kendi adlarına sahip programlar: bir Arduino emülatörü veya simülatörü. Bu tür programların en popüler temsilcileri ...

Seri başlatma Arduino'da son derece önemli bir komuttur, denetleyicinin bağlantı kurmasını sağlar. harici cihazlar... Çoğu zaman, bu "harici cihaz", Arduino'yu bağladığımız bilgisayardır. Bu nedenle Seri başlangıç ​​daha yoğundur...

Arduino'daki global bir değişken, kapsamı tüm programa uzanan, tüm modüllerde ve işlevlerde görülebilen bir değişkendir. Bu yazıda, global değişkenleri kullanmanın bazı örneklerine bakacağız, ...

Arduino dizileri, programcılar tarafından aynı tür veri kümeleriyle çalışmak için aktif olarak kullanılan bir dil öğesidir. Diziler neredeyse tüm programlama dillerinde bulunur ve sözdizimi çok benzer olan Arduino bir istisna değildir ...

Bu simülatör en iyi Chrome tarayıcısında çalışır
Arduino'ya daha yakından bakalım.

Arduino, harici devrelerin bağlanabileceği büyük bir bilgisayar değildir. Arduino Uno, Atmega 328P kullanıyor
Bu, tahtadaki en büyük çiptir. Bu çip, belleğinde depolanan programları yürütür. programı usb ile indirebilirsiniz Arduino'yu kullanmak IDE. USB girişi ayrıca arduino'ya güç sağlar.

Ayrı bir güç konektörü vardır. Kart üzerinde güç sağlamak için gerekli olan 5v ve 3.3v etiketli iki adet pin bulunmaktadır. çeşitli cihazlar... Ayrıca GND etiketli pinler de bulacaksınız, bunlar topraklama pinleridir (toprak 0V). Arduino platformu ayrıca, harici düğümlere bağlanan ve yüksek veya düşük (açık veya kapalı) iki duruma sahip olan, 0'dan 13'e kadar sayılarla etiketlenmiş 14 dijital pime (pin) sahiptir. Bu kontaklar çıkış veya giriş olarak çalışabilir, yani. ya bazı verileri iletebilir ve harici cihazları kontrol edebilirler ya da cihazlardan veri alabilirler. Karttaki aşağıdaki pinler A0-A5 olarak etiketlenmiştir. Bunlar, çeşitli sensörlerden veri alabilen analog girişlerdir. Bu, özellikle sıcaklık gibi bir aralığı ölçmeniz gerektiğinde kullanışlıdır. Analog girişler, ayrı olarak etkinleştirilebilen ek işlevlere sahiptir.

Breadboard nasıl kullanılır.

Her şeyi birbirine lehimlemeden önce, cihazın nasıl çalıştığını kontrol etmek için parçaları geçici olarak bağlamak için bir devre tahtası gerekir.
Aşağıdaki örneklerin tümü bir devre tahtasına monte edilmiştir, böylece hızlı bir şekilde devre değişiklikleri yapabilir ve parçaları lehimleme zahmetine girmeden yeniden kullanabilirsiniz.

Breadboard, içine parça ve kablo yerleştirebileceğiniz sıra sıra deliklere sahiptir. Bu deliklerin bazıları elektriksel olarak birbirine bağlıdır.

İki üst ve alt sıra, tüm pano boyunca seri olarak bağlanmıştır. Bu sıralar devreye güç sağlamak için kullanılır. 5v veya 3.3v olabilir, ancak her iki durumda da yapmanız gereken ilk şey, gösterildiği gibi 5v ve GND'yi breadboard'a bağlamaktır. Bazen bu sıra bağlantıları panonun ortasında kesintiye uğrayabilir, daha sonra gerekirse şekilde gösterildiği gibi bağlayabilirsiniz.








Tahtanın ortasında bulunan deliklerin geri kalanı beş delik ile gruplandırılmıştır. Devre parçalarını bağlamak için kullanılırlar.


Mikrodenetleyicimize bağlayacağımız ilk şey bir LED. Şema elektrik bağlantıları resimde gösterilmiştir.

Devredeki direnç ne işe yarar? Bu durumda LED üzerinden akan akımı sınırlar. Her LED belirli bir akım için tasarlanmıştır ve bu akım daha büyükse LED arızalanır. Ohm yasasını kullanarak direncin hangi derecelendirmeye sahip olması gerektiğini öğrenebilirsiniz. Bilmeyenler veya unutanlar için Ohm kanunu diyor ki; Doğrusal ilişki gerilimden akım. Yani, dirence ne kadar çok voltaj uygularsak, içinden o kadar fazla akım geçecektir.
V = Ben * R
Neresi V-direnç üzerindeki voltaj
ben- direnç üzerinden akım
r- Bulunacak direnç.
İlk olarak, direnç üzerindeki voltajı bulmamız gerekiyor. Kullanacağınız 3mm veya 5mm LED'lerin çoğu 3v çalışma voltajına sahiptir. Bu, direnç üzerindeki 5-3 = 2v'yi söndürmemiz gerektiği anlamına gelir.

Daha sonra dirençten geçen akımı hesaplıyoruz.
Çoğu 3 ve 5 mm LED, 20mA'da tam parlaklıktadır. Bundan daha büyük bir akım onları devre dışı bırakabilir ve daha az güçlü bir akım herhangi bir zarar vermeden parlaklıklarını azaltır.

Bu yüzden LED'i 20mA akıma sahip olacak şekilde 5v devresine dahil etmek istiyoruz. Tüm parçalar tek bir devreye dahil olduğundan, direnç de 20mA akıma sahip olacaktır.
alırız
2V = 20 mA * R
2B = 0.02A * R
R = 100 Ohm

100 Ohm minimum dirençtir, biraz daha fazla kullanmak daha iyidir, çünkü LED'lerin özelliklerinde bazı farklılıklar vardır.
İÇİNDE bu örnek 220 ohm'luk bir direnç kullanılır. Sırf yazarın birçoğu olduğu için: göz kırp:.

LED'i, uzun ucu direnç uçlarından birine bağlanacak şekilde kartın ortasındaki deliklere yerleştirin. Direncin diğer ucunu 5V'a ve LED'in diğer ucunu GND'ye bağlayın. LED yanmalıdır.

Lütfen LED'in nasıl bağlanacağı konusunda bir fark olduğunu unutmayın. Akım, daha uzun uçtan daha kısa kabloya akar. Şemada, akımın üçgenin yönlendirildiği yönde aktığı hayal edilebilir. LED'i ters çevirmeyi deneyin, yanmadığını göreceksiniz.

Ancak direnci nasıl bağlayacağınız arasında hiçbir fark yoktur. Onu ters çevirebilir veya LED'in farklı bir pinine bağlamayı deneyebilirsiniz, bu devrenin çalışmasını etkilemeyecektir. Yine de LED üzerinden akımı sınırlayacaktır.

Bir Arduino Eskizinin Anatomisi.

Arduino programlarına eskiz denir. İki ana işlevden oluşurlar. İşlev kurmak ve işlev döngü
bu fonksiyon içerisinde tüm temel ayarları tanımlayacaksınız. Hangi pinlerin giriş veya çıkış olarak çalışacağı, hangi kütüphanelerin bağlanacağı değişkenleri başlatır. İşlev Kurmak () program başladığında çizim sırasında yalnızca bir kez çalışır.
bu, daha sonra yürütülen ana işlevdir. kurmak ()... Aslında, bu programın kendisidir. Bu işlev, siz gücü kapatana kadar süresiz olarak çalışacaktır.

Arduino yanıp sönen LED



Bu örnekte, Arduino'nun dijital pinlerinden birine LED'li bir devre bağlayacağız ve programı kullanarak açıp kapatacağız ve ayrıca birkaç faydalı fonksiyon öğreneceksiniz.

Bu işlev şurada kullanılır: kurmak () programın bölümleri ve giriş olarak kullanacağınız pinleri başlatmaya yarar (GİRİŞ) veya çıkış (ÇIKTI)... Pin'de uygun şekilde ayarlayana kadar bir pinden veri okuyamaz veya yazamazsınız. pinModu... Bu işlevin iki argümanı vardır: PIN numarası kullanacağınız pin numarasıdır.

mod-pin nasıl çalışacağını belirtir. Girişte (GİRİŞ) veya çıkış (ÇIKTI)... LED'i yakmak için bir sinyal göndermeliyiz İTİBAREN Arduino. Bunu yapmak için, çıkmak için bir pin ayarladık.
- bu fonksiyon durumu ayarlamaya yarar (durum) pina (PIN numarası)... İki ana durum vardır (genel olarak 3 tane vardır), biri YÜKSEK, pin üzerinde 5v olacak, diğeri ise Düşük ve pin 0v olacaktır. Yani LED'i yakmak için LED'e bağlı pini ayarlamamız gerekiyor. yüksek seviye YÜKSEK.

Gecikme. Programı milisaniye cinsinden belirli bir süre geciktirmeye yarar.
LED'in yanıp sönmesini sağlayan kod aşağıdadır.
// LED Yanıp Sönme int ledPin = 7; // LED'in bağlı olduğu Arduino pini void setup() (pinMode (ledPin, OUTPUT); // pini OUTPUT olarak ayarlayın) void loop() (digitalWrite (ledPin, HIGH) ; // LED gecikmesini açın (1000); // 1000 ms gecikme (1 sn) digitalWrite (ledPin, LOW); // LED gecikmesini kapatın (1000); // 1 sn bekleyin)

Kodla ilgili küçük açıklamalar.
"//" ile başlayan satırlar Arduino'nun görmezden geleceği yorumlardır.
Tüm komutlar noktalı virgülle biter, unutursanız bir hata mesajı alırsınız.

ledPin bir değişkendir. Değişkenler, programlarda değerleri saklamak için kullanılır. Bu örnekte, değişken ledPin 7 değeri atanmıştır, bu Arduino'nun pin numarasıdır. Programdaki Arduino, değişkenli bir dize ile karşılaştığında ledPin, daha önce belirttiğimiz değeri kullanacaktır.
Yani kayıt pinMode (ledPin, ÇIKIŞ) kaydetmeye benzer pinMode (7, ÇIKIŞ).
Ama ilk durumda, sadece değişkeni değiştirmeniz gerekiyor ve kullanıldığı her satırda değişecek ve ikinci durumda, değişkeni değiştirmek için her komutta tutamaçlarla değişiklik yapmanız gerekecek.

İlk satır, değişkenin türünü gösterir. Arduino'yu programlarken, değişkenlerin türünü her zaman bildirmek önemlidir. şimdilik bunu bilmen yeterli INT negatif ve pozitif sayıları duyurur.
Aşağıda krokinin bir simülasyonu bulunmaktadır. Devrenin nasıl çalıştığını görmek için başlat'a basın.

Beklendiği gibi, LED kapanır ve bir saniye sonra açılır. Nasıl çalıştığını görmek için gecikmeyi değiştirmeyi deneyin.

Çoklu LED kontrolü.

Bu örnekte, birden fazla LED'i nasıl kontrol edeceğinizi öğreneceksiniz. Bunu yapmak için karta 3 adet daha LED takın ve bunları Arduino'nun dirençlerine ve pinlerine aşağıda gösterildiği gibi bağlayın.

Ledleri tek tek açıp kapatmak için şöyle bir program yazmanız gerekiyor:
// Çoklu LED Yanıp Sönme int led1Pin = 4; int led2Pin = 5; int led3Pin = 6; int led4Pin = 7; void setup () (// pinleri OUTPUT pinMode (led1Pin, OUTPUT); pinMode (led2Pin, OUTPUT); pinMode (led3Pin, OUTPUT); pinMode (led4Pin, OUTPUT);) void loop () (digitalWrite (led1Pin, HIGH) olarak ayarlayın ); // LED gecikmesini aç (1000); // 1 sn digitalWrite geciktir (led1Pin, LOW); // LED gecikmesini kapat (1000); // 1 sn geciktir // diğer 3 için de aynısını yap LED'ler digitalWrite (led2Pin , HIGH); // LED gecikmesini aç (1000); // 1 sn digitalWrite geciktir (led2Pin, LOW); // LED gecikmesini kapat (1000); // 1 sn digitalWrite geciktir (led3Pin) , YÜKSEK); // LED gecikmesini aç (1000); // 1 sn digitalWrite geciktir (led3Pin, LOW); // LED gecikmesini kapat (1000); // 1 sn digitalWrite geciktir (led4Pin, YÜKSEK); // LED gecikmesini aç (1000); // 1 sn gecikmeli digitalWrite (led4Pin, LOW); // LED gecikmesini kapat (1000); // 1 sn geciktir)

Bu program harika çalışacak, ancak en rasyonel çözüm değil. Kodun değiştirilmesi gerekiyor. Programın tekrar tekrar çalışabilmesi için adı verilen bir yapı kullanacağız.
Döngüler, aynı eylemi birkaç kez tekrarlamanız gerektiğinde kullanışlıdır. Yukarıdaki kodda satırları tekrarlıyoruz.

DigitalWrite (led4Pin, YÜKSEK); gecikme (1000); digitalWrite (led4Pin, DÜŞÜK); gecikme (1000);
ekteki çizim kodunun tamamı (indirmeler: 1187)

LED'lerin parlaklığını ayarlama

Bazen programdaki LED'lerin parlaklığını değiştirmeniz gerekecektir. Bu komutla yapılabilir analogWrite () ... Bu komut, LED'i o kadar hızlı açar ve kapatır ki, titreme gözle görülemez. LED zamanın yarısında açık ve yarısında kapalıysa, görsel olarak parlaklığının yarısında parlıyor gibi görünecektir. Buna Darbe Genişliği Modülasyonu (İngilizce'de PWM veya PWM) denir. Dijital bir kod kullanarak bir "analog" bileşeni kontrol etmek için kullanılabileceğinden, PWM oldukça sık kullanılır. Tüm Arduino pinleri bu amaç için uygun değildir. Sadece böyle bir atamanın yapıldığı sonuçlar " ~ ". 3,5,6,9,10,11 pinlerinin yanında göreceksiniz.
LED'lerinizden birini PWM pinlerinden birine bağlayın (yazar bu pin 9'a sahiptir). Şimdi yanıp sönen LED'in bir taslağını çalıştırın, ancak önce komutu değiştirin dijitalWrite ()üzerinde analogWrite (). analogWrite () iki argümanı vardır: ilki pin numarası ve ikincisi PWM değeridir (0-255), LED'lere göre bu onların parlaklığı ve elektrik motorları için dönüş hızı olacaktır. Aşağıda farklı LED parlaklıkları için örnek bir kod verilmiştir.
// LED'in parlaklığını değiştirin int ledPin = 9; // LED bu pin void kurulumuna bağlıdır () (pinMode (ledPin, OUTPUT); // pini pine başlatır) void loop() (analogWrite ( ledPin, 255); // tam parlaklık (255/255 = 1) gecikme (1000); // 1 saniye digitalWrite duraklatma (ledPin, LOW); // LED gecikmesini kapat (1000); // 1 saniye analogWrite duraklat (ledPin, 191); // parlaklık 3/4 (191/255 ~ = 0.75) gecikme (1000); // 1 saniye digitalWrite duraklatma (ledPin, LOW); // LED gecikmesini kapat (1000); // 1 saniye analogWrite duraklatma (ledPin, 127); // parlaklığın yarısı (127/255 ~ = 0,5) gecikme (1000); // 1 saniye digitalWrite duraklatma (ledPin, LOW); // LED gecikmesini kapat (1000) ; // 1 saniye analogWrite duraklat (ledPin, 63); // çeyrek parlaklık (63/255 ~ = 0,25) gecikme (1000); // 1 sn digitalWrite duraklat (ledPin, LOW); // LED gecikmesini kapat ( 1000); // 1 saniye duraklat)

Komuttaki PWM değerini değiştirmeyi deneyin analogWrite () Bunun parlaklığı nasıl etkilediğini görmek için.
Ardından, parlaklığı tamdan sıfıra sorunsuz bir şekilde nasıl ayarlayacağınızı öğreneceksiniz. Elbette, bir kod parçasını 255 kez kopyalayabilirsiniz.
analogWrite (ledPin, parlaklık); gecikme (5); // kısa gecikme parlaklık = parlaklık + 1;
Ama biliyorsun, pratik olmayacak. Bunun için kullanmak en iyisidir Döngü için hangi daha önce kullanıldı.
Aşağıdaki örnek, biri 255'ten 0'a karartmak için iki döngü kullanır
for (int parlaklık = 0; parlaklık = 0; parlaklık -) (analogWrite (ledPin, parlaklık); gecikme (5);)
gecikme (5) yavaşlama ve kararma hızını yavaşlatmak için kullanılır 5 * 256 = 1280 ms = 1.28 saniye.)
İlk satırda " parlaklık-"döngü her tekrarlandığında parlaklık değerini 1 azaltmak için. Döngünün ne kadar uzun süre çalışacağını unutmayın. parlaklık> = 0.İşaretin değiştirilmesi > tabelada >= parlaklık aralığına 0'ı dahil ettik. Bu eskiz aşağıda modellenmiştir. // parlaklığı sorunsuz bir şekilde değiştirin int ledPin = 9; // led bu pin void kurulumuna bağlıdır () (pinMode (ledPin, OUTPUT); // pini çıkışa başlatır) void loop() (// düzgün bir şekilde artar) (int parlaklık = 0; parlaklık = 0; parlaklık -) (analogWrite (ledPin, parlaklık); gecikme (5);) gecikme (1000); // 1 saniye bekle // parlaklık (255 - 0) for (int parlaklık = 255; parlaklık> = 0; parlaklık -) (analogWrite (ledPin, parlaklık); gecikme (5);) gecikme (1000); // 1 saniye bekleyin))
Bu çok görünür değil, ancak fikir açık.

RGB LED ve Arduino

Bir RGB LED aslında tek bir pakette üç farklı renkte LED'dir.

Farklı parlaklığa sahip farklı LED'leri dahil ederek birleştirebilir ve farklı renkler elde edebilirsiniz. Parlaklık derecesi sayısının 256 olduğu Arduino için 256 ^ 3 = 16581375 olası renk elde edeceksiniz. Gerçekte, elbette, onlardan daha az olacak.
Ortak katot olarak kullanacağımız LED. Onlar. üç LED'in tümü, katotlarla yapısal olarak bir terminale bağlanır. Bu pini GND pinine bağlayacağız. Geri kalan pinler, sınırlayıcı dirençler aracılığıyla PWM pinlerine bağlanmalıdır. Yazar 9-11 pinlerini kullandı, böylece her bir LED'i ayrı ayrı kontrol etmek mümkün olacak. İlk çizim, her bir LED'in ayrı ayrı nasıl açılacağını gösterir.



// RGB LED - test // pin bağlantıları int kırmızı = 9; int yeşil = 10; int mavi = 11; void setup () (pinMode (kırmızı, ÇIKIŞ); pinMode (mavi, ÇIKIŞ); pinMode (yeşil, ÇIKIŞ);) void döngüsü (// kırmızı LED digitalWrite (kırmızı, YÜKSEK) etkinleştir / devre dışı bırak); gecikme (500) ; digitalWrite (kırmızı, DÜŞÜK); gecikme (500); // yeşil LED digitalWrite'ı etkinleştirme / devre dışı bırakma (yeşil, YÜKSEK); gecikme (500); digitalWrite (yeşil, DÜŞÜK); gecikme (500); // maviyi etkinleştirme / devre dışı bırakma LED digitalWrite (mavi, YÜKSEK); gecikme (500); digitalWrite (mavi, DÜŞÜK); gecikme (500);)

Aşağıdaki örnek komutları kullanır analogWrite () ve LED'ler için farklı rastgele parlaklık değerleri elde etmek. Farklı renklerin rastgele değiştiğini göreceksiniz.
// RGB LED - rastgele renkler // pin bağlantıları int red = 9; int yeşil = 10; int mavi = 11; void setup () (pinMode (kırmızı, ÇIKIŞ); pinMode (mavi, ÇIKIŞ); pinMode (yeşil, ÇIKIŞ);) void döngüsü (// rastgele bir renk seçin analogWrite (kırmızı, rastgele (256)); analogWrite ( mavi, rastgele (256)); analogWrite (yeşil, rastgele (256)); gecikme (1000); // bir saniye bekleyin)

Rastgele (256)-İadeler rastgele sayı 0 ile 255 aralığında.
Ekli dosyada, renklerin kırmızıdan yeşile, sonra mavi, kırmızı, yeşil vb. yumuşak geçişlerini gösteren bir çizim var. (indirmeler: 326)
Eskiz örneği çalışıyor, ancak çok fazla tekrarlayan kod var. Bir renkten diğerine sorunsuzca değişecek kendi yardımcı işlevinizi yazarak kodu basitleştirebilirsiniz.
Bu nasıl görünecek: (indirmeler: 365)
Bir fonksiyonun tanımına parça parça bir göz atalım. fonksiyon denir azaltıcı ve iki argümanı vardır. Her bağımsız değişken virgülle ayrılır ve işlev tanımının ilk satırında belirtilen türe sahiptir: void fader (int color1, int color2)... Her iki argümanın da şu şekilde bildirildiğini görebilirsiniz. int, ve onlar adlandırılır renk1 ve renk2 işlevi tanımlamak için koşullu değişkenler olarak. Geçersiz işlevin herhangi bir değer döndürmediği, yalnızca komutları yürüttüğü anlamına gelir. Çarpmanın sonucunu döndüren bir fonksiyon yazmak gerekirse, şöyle görünürdü:
int çarpanı (int sayı1, int sayı2) (int ürün = sayı1 * sayı2; dönüş ürünü;)
Type'ı nasıl bildirdiğimize dikkat edin int yerine dönüş türü olarak
geçersiz.
Fonksiyonun içinde önceki çizimde kullandığınız komutlar var, sadece pin numaraları renk1 ve renk2... fonksiyon denir azaltıcı, argümanları şu şekilde değerlendirilir: renk1 = kırmızı ve renk2 = yeşil... Arşiv, işlevleri kullanan eksiksiz bir çizim içerir (indirmeler: 272)

Buton

Bir sonraki çizim, normalde açık kontakları olan, mandallama olmayan bir düğme kullanacaktır.


Bu, düğmeye basılmadığı sürece içinden akım geçmediği ve bırakıldıktan sonra düğmenin orijinal konumuna geri döndüğü anlamına gelir.
Devrede butona ek olarak bir direnç de kullanılmaktadır. Bu durumda akımı sınırlamaz, ancak düğmeyi 0V'a (GND) "çeker". Onlar. bağlı olduğu Arduino pininde butona basılmadığı sürece düşük olacaktır. 10k ohm devresinde kullanılan direnç.


// butonu tanımla press int buttonPin = 7; void setup () (pinMode (buttonPin, INPUT); // Serial.begin (9600) girişine pini başlat; // seri portu başlat) void loop () (if (digitalRead (buttonPin) == HIGH) ( // butona basılırsa Serial.println ("basılı"); // "basıldı" yazısını görüntülerse başka (Serial.println ("basılmamış"); // aksi takdirde "basılmamış"))
Bu çizimde birkaç yeni komut var.
-Bu komut kontrol ettiğimiz pinin High ve low değerlerini alır. Daha önce setup() içerisinde bu çıkış giriş olarak konfigüre edilmelidir.
; // buttonPin butonun bağlı olduğu pin numarasıdır.
Seri port, kontrolörün kendisi programı yürütürken Arduino'nun bilgisayara mesaj göndermesine izin verir. Bu, bir programda hata ayıklamak, diğer cihazlara veya uygulamalara mesaj göndermek için kullanışlıdır. Seri bağlantı noktası üzerinden veri aktarımını etkinleştirmek için (başka bir ad UART veya USART'tır), bunu kurulumda () başlatmalısınız.

Seri.başla () sadece bir argümanı var, Arduino ve bilgisayar arasındaki baud hızı.
Çizimde, Arduino IDE'de (Araçlar >> Seri Monitör) ekranda bir mesaj görüntülemek için bir komut kullanılır.
- tasarım, birkaç kontrolü tek bir yerde birleştirerek programın ilerlemesini kontrol etmenizi sağlar.
(eğer) digitalRead YÜKSEK döndürürse, monitörde "basıldı" kelimesi görüntülenir. Aksi takdirde (aksi takdirde) monitörde "depresif" kelimesi görüntülenir. Artık bir düğmeye basarak LED'i açıp kapatmayı deneyebilirsiniz.
// LED çıkışlı düğmeye basma algılama int buttonPin = 7; int ledPin = 8; void setup() (pinMode (buttonPin, INPUT); // bu sefer buton pinini INPUT pinMode (ledPin, OUTPUT) olarak ayarlayacağız; Serial.begin (9600);) void loop() (if (digitalRead (buttonPin) = = YÜKSEK) (digitalWrite (ledPin, YÜKSEK); Serial.println ("basılmış");) başka (digitalWrite (ledPin, LOW); Serial.println ("basılmamış"));)

Analog giriş.

analogOkuma Arduino'nun analog pinlerinden birinden veri okumanıza izin verir ve 0 (0V) ila 1023 (5V) aralığında bir değer verir. Analog girişteki voltaj 2,5V ise, 2.5 / 5 * 1023 = 512 yazdırılacaktır.
analogOkuma yalnızca bir argümanı vardır - Bu, analog girişin (A0-A5) sayısıdır. Aşağıdaki çizim, potansiyometreden voltajı okumak için kodu göstermektedir. Bunu yapmak için değişken bir direnç, uç terminalleri 5V ve GND pinlerine ve orta terminali A0 girişine bağlayın.

Aşağıdaki kodu çalıştırın ve direnç düğmesinin dönüşüne bağlı olarak değerlerin nasıl değiştiğini seri monitörde görün.
// analog giriş int potPin = A0; // potansiyometrenin merkez pini bu pin void kurulumuna bağlıdır () (// analog pin varsayılan olarak açıktır, bu nedenle başlatmaya gerek yoktur Serial.begin (9600);) void döngüsü () ( int potVal = analogRead (potPin); // potVal, 0 ile 1023 arasında bir sayıdır Serial.println (potVal);)
Aşağıdaki çizim, bir düğmeye basmak için çizimi ve LED'in parlaklığını kontrol etmek için çizimi birleştirir. Düğmeden LED yanacak ve potansiyometre parlaklığı kontrol edecektir.
// LED çıkışlı ve değişken yoğunluklu düğmeye basma algılama int buttonPin = 7; int ledPin = 9; int potPin = A0; void setup () (pinMode (buttonPin, INPUT); pinMode (ledPin, OUTPUT); Serial.begin (9600);) void loop () (eğer (digitalRead (buttonPin) == HIGH) (// butona basılırsa int analogVal = analogRead (potPin); int scaledVal = map (analogVal, 0, 1023, 0, 255); analogWrite (ledPin, scaledVal); // pot Serial.println ("basılmış") tarafından ayarlanan yoğunlukla led'i açın;) başka (digitalWrite (ledPin, LOW); // butona basılmazsa kapatın Serial.println ("basılmamış"));)

Konunun devamı:
Android

Ukraynalılar, Maidan yetkilileri tarafından engellenen Rus sosyal ağı VKontakte'nin bir analogunu oluşturamadı. Bu, Facebook'ta yazarlardan biri tarafından bildirildi ...