Arduino 101: 12 Adım (Resimlerle)

Arduino 101: 12 Adım (Resimlerle)

İçindekiler:

Anonim

Arduino ile başlamak için bazı temel bilgilere ihtiyacınız olacak. Bu eğitici yazıda, biraz bulanık ışığın ötesine geçip size şunları öğreteceğiz:

  • Değişkenler
  • Giriş ve Çıkış pinleri
  • Sensörler ve veri okuma
    • Eşleme sonuçları
  • Fonksiyonlar

Başka bir derste, sınıfları ve neden onları kullanabileceğimizi ele alacağım.

Ama yine de biraz ışık yanıp sönebilir … Sadece … Selam Dünya! Tamam. Eşek Şakası.

Bu oldukça basit olacak, ama giderek daha zorlaşacaktır. Parçalara ayırmayı ve her seferinde bir bölümden geçmenizi öneririm.

Bunu yapmak için, bir Tinkercad hesabına (açık www.tinkercad.com) ihtiyacınız olacak ve Google’ı kaydolmak (işleri kolaylaştırmak için) veya yalnızca e-postanıza kaydolmak için kullanmanız gerekir. Başlayalım!

Devre tasarımını referans olarak buraya gömeceğim. Bu temel, ancak elektronik tasarım ile ilgili değil, Arduino'daki kod özelliklerini kullanarak çeşitli bileşenlerle etkileşime girme anlamına geliyor.

Gereçler:

Adım 1: Ortam Kurulumu

Çevreyi kuralım. Bu eğitim boyunca, bir Arduino'dan başka bir şeye ihtiyacımız olmayacak. Yukarıdaki resimlere bakın, ancak yapmanız gerekenler:

  1. Değiştirmek için açılır menüyü kullanın. Herşey bileşenler.
  2. tip Arduino arayıp tuval üzerine tıklayarak sürükleyerek bir Arduino tahtası koyun
  3. Kod menüsünü açın ve Metin olarak değiştirin (beliren uyarıyı silebilirsiniz)
  4. Tüm kodu temizle geçersiz kurulum () ve geçersiz döngü () işlevleri yerine getirir (kod panelinin nasıl görünmesi gerektiğine ilişkin resme bakın)

Adım 2: Arduino Temelleri

Kongre konuşalım.

Kongre, tüm programcıların kodlarını temiz ve düzenli tutmak için yaptıkları bir şeydir.Yayımlanan belirli bir sözleşmeyi kabul edebilir veya genel bir kılavuz izleyebilir ve kendinizinkini tanımlayabilirsiniz. Başlıyorsanız, en başından itibaren iyi bir kod almak en iyisidir. Biraz programlama yapıyorsanız ve kod yönetimi zayıfsa, şimdi tam zamanı!

Bunu okumanızı öneriyorum: http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#main. Bu C ++ temel kuralları daha fazla anlamanıza yardımcı olacaktır.

Bunlar benim (çok temel) sözleşmelerim.

  • Değişken isimleri yazmak için deve durumda - İlk harf küçük harf, ilk harf büyük harfle kalan, çünkü … deve.

int someVariableName; // Bunu daha iyi buluyorum: int some_variable_name;

  • Semboller arasındaki boşlukları en aza indirin fakat okunaklılığı sağlayın

int someVariable = 9; // int yerine bazı değişkenler = 9

Bence ikincisi daha az okunabilir.

  • Bir, belki iki değişken belirtin maksimum bir satırda. Bir hatta iki ayrı talimat asla

int someVar, anotherVar; // Brüt. Hata ayıklama lütfen ?! int someVar; someVar = someVar - 10; // Çok daha net int someVar; someVar = someVar - 10;

  • Mümkün / faydalı olan sabitleri kullanın
  • İşlevleri ve gerektiğinde tanımlamak için kod, ancak daha net kod daha iyidir
  • Tüm kelimelerin ilk harfleri için büyük harflerle fonksiyonlar

void MyGreatFunction (); // Bunun bir çağrıdaki değişkenden farklı olduğu açık, şimdi int someVar = MyGreatFunction ();

  • 4 boşluk veya 1 sekme kullanarak her zaman girintiyi temizle.

void MyGreatFunction () {int someVar = 10; } // Bundan ziyade … void MyGreatFunction () {int someVar = 10; } // Daha da kompakt!

Bu ayrıntılı değildir, ancak ihtiyaç duyduğumuz şeylerin temelini verir. Kendi stillerine bağlı kal ve harika kodlar oluşturabileceksin!

Adım 3: Özellikler ve Özellikler

Daha önce bir Arduino görmediyseniz veya buna aşina değilseniz, kartın ve ortamın özelliklerine bakalım.

İlk olarak, Arduino girişleri, çıkışları kontrol edebilen ve diğer cihazlarla konuşabilen mikroişlemcili bir prototip kartıdır. Çekirdek programlama dili olarak C ++ 'ı kullanır. Resme bir bakın. Var:

  • Lojik giriş ve çıkış için dijital pinler. Bu basit bir Doğru / Yanlış olabilir veya küçük kodlu bir analog pin olarak kullanılabilir. Işıkları ve 5V güçle açılıp kapatılabilen diğer cihazları da ekleyebilirsiniz. Bunları bir çok şey için kullanacağız. Bunları diğer cihazlarla da genişletebilirsiniz.
  • Analog pinler de okuma / yazma pinleridir, ancak dijital değildirler ve bir mantık çıkışı veya girişi sağlamazlar. Bunlar, sıcaklık veya ışık sensörleri gibi dirençli cihazlar için iyidir.
  • Güç ve toprak - bunlar, yüksek bir dijital pim kullanmadan cihaza güç yönlendirebilmeniz için sağlanır. Bu pimleri uzatmak için çoğu zaman bir koparma kartı kullanıyoruz, çünkü çok kullanışlı ve kolayca genişletilebilir

Tahta bu. Kod için iki kritik fonksiyonumuz var. Şunlara bakalım.

geçersiz kurulum () {}

Bu fonksiyon çalışıyor bir Zamanlar Arduino her yüklediğinde, bir USB prizine taktığınız veya bir pil taktığınız gibi. Yalnızca bir kez çalışır ve çağrılamaz (olası sorunlar olmadan).

void loop () {}

Döngü, kurulum işlevi tamamlandıktan sonra sonsuz bir şekilde çalışır ve kart çıkarılmadan durmadan çalışmayacaktır, yanlışlıkla döngüye çarpmanız veya erken çıkmanız gerekir.

Kodunuzu her başlattığınızda, Arduino IDE (Entegre Geliştirme Ortamı) veya Tinkercad'deki her şeyi silmelisiniz. Çoğu zaman, bu programlar size nereden başlayacağınızı göstermek için bir şeyler koyarlar, ancak bu yolla baş edebilir, o yüzden temizleyin ve sizin olmayan sorunlara girmeyeceksiniz.

Adım 4: İşlevler

İşlev, biz çağırdığımızda çalışan bir kod parçasıdır. Genellikle bir geri dönüş değeri sağlarlar, ancak bazı durumlarda değer yoktur. Bunu biliyoruz çünkü fonksiyon başlıyor geçersiz. Bu, derleyici işlevinin sonunda bir dönüş değeri beklemeyeceği anlamına gelir. Eğer böyle bir fonksiyon yazacak olsaydım -

bool myFunction () {// bir şeyler yapın someBooleanValue; }

Ardından, doğru veya yanlış bir değer döndürmek için işlev gerekli olacaktır. Normalde, içinde döngü () işlev, yapmamız gereken tüm işleri yaparız. Bu çalışmanın bölümlerini başka işlevlere çıkarabilir veya etkileşime girebileceğimiz nesneleri eklememize yardımcı olan kendi sınıflarımızı oluşturabiliriz. Yine de başka bir derste daha fazlasını yapacağız!

Adım 5: Değişkenler

Yukarıdaki resimlerde küresel kapsamdaki değişkenlerin beyanı görülmektedir. Bir dakika ne?!

Küresel kapsam, programın kökü gibidir. Tüm işlevlerin değişkenlerinize erişebileceği bir alandır. Bu hem iyi hem de kötü. Bazen çatışmalara neden olabilir ve bazen fonksiyonların kolayca iletişim kurmasına yardımcı olabilir. Genel olarak, burada bir kez bildirilmesi ve birçok kez kullanılması gereken değişkenleri bildirirsiniz. Ancak, bunlara yalnızca bir konumda erişmeye / değiştirmeye / güncellemeye çalışın. Buradaki fikir, eğer birden fazla fonksiyon aynı değişkeni güncelliyorsa, beklenmeyen bir sonuç veya takip edilmesi gerçekten zor bir kodunuz olabilir, ancak fonksiyonları tartışırken bunu başarabiliriz. Hadi koda bakalım.

int onBoardLed = 13;

Bu ilk kod satırında üç şey yapıyoruz. İlk önce değişkene isim veriyoruz onBoardLed. Bir değişken bir kovadır ve aynı kova olduğu sürece eşyaları o kovaya koyabiliriz. Dizi biraz farklı, ama bu daha sonra. Yaptığımız ikinci şey bir atama sembolü. Eşittir işareti, değişkenin bu değeri tutacağını belirtir. Bu durumda, bir tamsayı tahsis ediyoruz - tam bir sayı. Dolayısıyla, satırın başında yazdık int. Bu, bu tür bir tamsayı tipi değişkeni yapar. Ayrıca şunları da kullanabiliriz:

  • şamandıra (ondalık sayı, 7 basamak)
  • çift ​​(ondalık sayı, 15 basamak)
  • bool (doğru / yanlış, 0/1)
  • kömür

Bunlar Arduino'da kullanacağımız başlıca şeyler. Şimdilik, bir Dizi bile kullanmamız pek mümkün değil, fakat daha sonra onları yine de koruyacağız.

Bir değişken atarken, bir değişkenin değerinin değiştirilebileceğini unutmayın. Yani aşağıdakiler geçerlidir:

int onBoardLed = 13; onBoardLed = 12;

Bunun beklenmeyen sonuçları olabilir. Daha iyi bir örneğe bakalım.

const int onBoardLed = 13; int someInteger = 0; void SomeFunction () {onBoardLed = 9; bazıInteger = 9; }

Bu örnekte, onBoardLed ürününü bir const int - sabit bir tamsayı. Bu artık bir değişken değil bir sabittir, yani değişemez. SomeFunction içindeki ilk satır başarısız olur, çünkü bir sabite bir değer atamaya çalışıyorsunuzdur. Tinkercad'da dene! Kodu girin ve Simülasyonu Başlat'a tıklayın. Derleyicide hata attığını göreceksiniz.

Yazdığınız kodu Tinkercad'den silin ve yukarıdaki resimdeki iki temel fonksiyona geri dönün. OnBoardLed için sabiti yeniden yazabilirsiniz. Şunlara sahip olmalısınız:

const int onBoardLed = 13; void setup () {} void döngü () {}

Başka bir yerde değişkenleri bir işlev içinde olan yerel kapsamda atayabiliriz. Bunu yaparsanız, değişken yalnızca bu işlev içinde bulunur ve başkaları tarafından kullanılamaz. Bir örnek görelim.

// Genel bir değişken int myVar = 10; void SomeFunction () {// Yerel bir değişken int fooVariable = 15; } void anotherFunction () {// Burada fooVariable öğesine başvurmaya çalışırsam, kod fooVariable = 5; // Ama myVar'a başvurabilirim myVar = 5; }

Oluşturulan hataları göreceksiniz (hatanın dördüncü resmine bakın).

Genel ilke:

  • Değişkenleri bildirmek istiyorsanız, bunu global olarak yapın. bilmek onlara çeşitli işlevlerde erişmeniz gerekir. Arduino için, pinlerin değişkenlerini ve sürekli güncellenmesini ya da sıfırlanmasını istemediğimiz diğer referans noktalarını açıklayacağız. Bir sonraki adımda, bunun pratik bir örneğini yapacağız.
  • Yerel olarak yok etmekten mutlu olduğunuz değişkenleri bildirin - bazen her değişkeni takip etmemize gerek kalmaz, böylece program her döngüde 'kaybedebiliriz'.

Yani, bu değişkenler. Arduino hakkında pratik bir örnek yapalım.

Adım 6: Değişkenlerle Pratik Örnek

Tamam, pratik bir örneğe bakalım. İlk olarak, kod.

Temel kodla başladınız:

void setup () {} void döngü () {}

Hadi göz kamaştırıcı bir ışık yapalım, çünkü bir yerden başlamalıyız …

İlk önce, pim 13 üzerindeki yerleşik LED'in değeri olan bir değişken atayın.

const int onBoardLed = 13;

Bu gitmeli yukarıdaki kurmak() işlevi. Bu küresel kapsamda koyar. Not Sabit yaptım, böylece daha sonra kazayla bir yere atamadım.

Şimdi pimi ayarlayalım.

const int onBoardLed = 13; void setup () {pinMode (onBoardLed, OUTPUT); }

İçinde kurmak() işlevi, çağrılan bir işlevi çağırın pinMode (). Bu işlev minimum iki argüman alır, değişken pin değeri (atanan değişken onBoardLed) ve INPUT veya OUTPUT olabilen pimin modu. Bu, büyük harflerle yazılmalıdır, çünkü Arduino kütüphanesinde sabit bir değerdir ve böyle tanımlanır. ÇIKIŞ pimi olarak kullanacağız.

Sonra, saniyede bir kez ışığın yanıp sönmesini sağlayacak kodu yazın.

const int onBoardLed = 13; void setup () {pinMode (onBoardLed, OUTPUT); } void loop () {// Işığı aç ve bir saniye bekle digitalWrite (onBoardLed, HIGH); Gecikme (1000); // Işığı kapat ve bir saniye bekle digitalWrite (onBoardLed, LOW); Gecikme (1000); }

Bu kodu Tinkercad Kodu düzenleyicisine yazarsanız, yukarıdaki resme benzer bir şeye sahip olmalısınız.

Hadi koddan geçelim.

Değişkenleri ve sabitleri nasıl yapacağınızı biliyorsunuz, bu yüzden bunu yeniden yorumlamayacağım. döngü () işlev iki yeni işlev içerir.

digitalWrite (onBoardLed, HIGH); // Ve gecikme (1000);

İlk işlev digitalWrite () Bu iki argüman alır. Dijital pimleri kullandığımız yer burasıdır. İlk argüman, panodaki bir pin, genellikle dijital bir pin anlamına gelen bir değerdir. Sonra, esasen AÇIK veya KAPALI olan pimin durumunu ayarlamak YÜKSEK veya DÜŞÜK sürer. Bu pimin mantığı. Bu senaryo için, pimi bu şekilde kullanıyoruz.

İkincisi gecikmesi () Kelimenin tam anlamıyla döngüyü, işlevin beklediği tek bağımsız değişken olarak tanımlanan milisaniye sayısı için duraklatır. Bunu istediğiniz milisaniyeye ayarlayabilirsiniz. Git ve dene! Karttaki LED'e ne olur?

Her şey planlandığı gibi çalıştıysa, tahtada soluk fakat yanıp sönen bir ışık olacaktır. Aferin! Bir sonraki konsepte doğru …!

Adım 7: Giriş ve Çıkış Pimleri

Giriş ve çıkış pinleri hakkında konuşalım ve üç örnek tamamlayalım veya analog okuma ve yazma ve dijital pin yazma. Son adımda dijital bir iğneye yazdın, o yüzden onu reddetmeyeceğiz. Aksi takdirde, bunu analog ve diğeri dijital olmak üzere iki adıma ayıracağız. Başlayalım!

Bu adım için, Tinkercad'e gidin ve üzerinde çalıştığımız devreyi kullanın. Bileşenler paneline erişmeniz (sağda, Arduino'yu eklediğimiz yerde) ve üç öğe eklemeniz gerekir:

  • Potansiyometre
  • Tuşu kaydır
  • LED (herhangi bir renk gayet iyi - tıklandığında değiştirebilirsiniz)
  • İki direnç, 150Ω'ye ayarlanmış (bunun nasıl yapılacağı hakkında aşağıya bakınız)
  • İki direnç, 10KΩ'ye ayarlanmış

İkinci resimde, direnci tıklattığımı ve değerini 150 Ohm olarak değiştirdiğimi göreceksiniz. Direnişi nasıl belirlediğimizle ilgili fazla bir şey yapmayacağım, çünkü bu hep birlikte başka bir konuşma. Temel olarak, toplam besleme gerilimi için LED'in ileri geriliminden (voltaj gereksinimi) daha az, LED'in ileri akımına (miliamp gereksinimleri) bölünmesi gerekir. Bu gibi görünüyor (burada empedans / akım):

R = (Vs - Vf) / Eğer

Yani bizim durumumuzda:

R = (5 - 2,2) / 20

R = 0,14 KΩ veya 140Ω

Tinkercad, uyarının yanında durur ve 140Ω'de LED'inizin hızlı bir şekilde yanması konusunda sizi uyarır. Ayarlarının ileri voltaj için ne olduğundan% 100 emin değilim, bu yüzden uyarıdan kurtulmak için 150 dial'ye kadar çeviriyorum. Her iki durumda da işe yarayacak (sonuçta bu sadece bir sim).

Gerçek devrelerde, genellikle devreyi korumak için yine de biraz kullanırım, bu yüzden ne yapacağınızı yapın.

Adım 8: Dijital Okuma

Dijital okuma çok çeşitlidir ve onunla etkileşime girme şekliniz tamamen bağladığınız cihaza göre değişir. Bir slideswitch kullanacağız ve anahtarın değerini digitalRead () kullanarak iki pim üzerinde okuyacağız. Daha sonra iki LED'den birini açmak için digitalWrite () ile önceki tecrübemizi kullanacağız. Bağlayalım!

Yukarıdaki resme bakın. Bileşenler panelinden bir Breadboard Small arayın ve ekleyin. Arduino'nun üzerine yerleştirin. Bu bağlanmayacak, ancak prototip oluşturma işlemini kolaylaştırıyor. Arduino ve bileşenler arasında teller bağlamamız gerekiyor. Sürgülü düğmeyle başlayalım.

Sürgülü düğmeyi breadboard'a yerleştirin. Görüntü 2 ve 3'e bakın. Ekmek tahtası üzerindeki noktaların dikey olarak bağlandığını unutmayın, ancak ortadaki kanal üst bloğu alttan ayırır. Bu boşluğu daha sonra derste kullanacağız. Noktalar yatay olarak bağlanmadığından, tüm aygıtları sütunlara bağladığınızdan emin olmanız gerekir. Slayt anahtarını görüntü 3 ile aynı yönde yerleştirin.

Kablolama

Bağlamak için sol ve sağ sütunları dijital pimler 2 ve 3. Ardından orta kabloyu panodaki toprağa (GND) bağlayın. Dijital ve siyah ile GND arasındaki bağlantılar için kabloları yeşil renkle (veya kırmızı veya siyah dışında ne istersen) renklendirin. Kabloyu tıklayarak ve ardından rengi seçerek bunu yapın.

Dış pimlerin aynı kolonundan 10KΩ dirençleri kolayca GND'ye yönlendirilebilecekleri bir noktaya ekleyin. Bu, anahtar kapatıldığında toprağa gitmelerini sağlar.

Harika! Kodu yapalım.

Adım 9: Kodlama

Arabirimdeki Kod düğmesini tıklayın ve "Bloklar" ı "Metin" olarak değiştirin. Blokları severiz, ancak metin kodunu da öğrenmemiz gerekir. Tüm kodu kaldırın, böylece okur:

void setup () {} void döngü () {}

Tamam, dijital pimi okumak için, döngü içinde birkaç işlevi çalıştırmamız gerekir. Kodu yazalım sonra geçelim.

// Sabitleri atama const int switchPosition1 = 2; const int anahtarıPozisyon2 = 3; void setup () {// Pim türlerini atayın (INPUT veya OUTPUT) pinMode (switchPosition1, INPUT); pinMode (switchPosition2, INPUT); } void loop () {int positionOneActive = digitalRead (switchPosition1); int positionTwoActive = digitalRead (anahtar konumu2); // if (positionOneActive == HIGH) {// bir şeyler yapın} eğer aktif pozisyona cevap verin eğer (positionTwoActive == HIGH) {// bir şeyler yapın}}

Tamam.. Bu birazcık.

İlk önce, iki anahtar konumuna atandık. Bu pin değerlerini okuyabilmemiz içindir.

Ardından, kurulum fonksiyonunda pim tiplerini belirleriz. Bunu daha önce yaptık, ancak son olarak bir OUTPUT tipi kullandık.

Şimdi, döngüde yeni bir işlev ve Eğer() Beyan. Bu, girdi temelli kararlar alabilmemiz içindir. Şuna bir bakalım.

eğer (positionOneActive == YÜKSEK)

İlk önce biz Eğer, sonra yuvarlak ayraçların içinde karşılaştırmalı kullanırız. Aşağıdakiler gibi birçok yönden karşılaştırabiliriz:

  • == veya eşittir
  • <= veya eşit veya daha az
  • > = veya daha büyük veya eşit
  • vb…

Birkaç karşılaştırıcı var ve kullanım durumunuz için ihtiyacınız olanı bulmak en iyisidir.

Yani, bu durumdaOneActive pozisyonunun YÜKSEK olup olmadığını kontrol ediyoruz, bu durumda "bir şey yapabiliriz". Bir sonraki adımda, bu çalışmanın bir sonucu olarak ışığı açacağız.

10. Adım: Bir Şey Yapın …

İlk önce, ışıkları bağlayalım.

Daha önce, sütunların bağlı ve satırların olmadığını tartıştık. Bu, kabloları panodaki pinlere kolayca bağlayabileceğimiz anlamına gelir. Başlamak için en iyi yer, LED'leri ve dirençleri tahtaya yerleştirmektir. Yerleşim için resme bakın.

Her LED'in altından yuvarlayın. Birinin Katot, diğeri ise Anot olduğunu fark edeceksiniz. Katot negatiftir, Anot Pozitif ise. Bu sadece şu an için geçerlidir çünkü Anot'u digitalPin'e ve Katot'i GND'ye bağlamamız gerekir.

  • Katottan GND'ye bir tel yerleştirin
  • Kolonun üstünden başka bir yere 4 ve 5 numaralı dijital pimlere yerleştirin. Breadboard ile Anod için pimin aynı sütunda temas ettiklerini kontrol edin.
  • Boşluğu bir dirençle doldurun.

Tamam, burası bizim bittiğimiz yer. Öyleyse aşağıdaki yorumları değiştirelim (okuyanlar // bir şeyler yaparlar) ve iki tane daha pin konumu ekleyelim

// Sabitleri atama const int switchPosition1 = 2; const int anahtarıPozisyon2 = 3; const int led1 = 4; const int led2 = 5; void setup () {// Pim türlerini atayın (INPUT veya OUTPUT) pinMode (switchPosition1, INPUT); pinMode (switchPosition2, INPUT); pinMode (led1, ÇIKIŞ); pinMode (led2, ÇIKIŞ); } void loop () {int positionOneActive = digitalRead (switchPosition1); int positionTwoActive = digitalRead (anahtar konumu2); // eğer aktif pozisyona cevap verirseniz (positionOneActive == HIGH) {digitalWrite (led1, HIGH); } if (positionOneActive == LOW) {digitalWrite (led1, LOW); } if (positionTwoActive == HIGH) {digitalWrite (led2, HIGH); } if (positionTwoActive == DÜŞÜK) {digitalWrite (led2, DÜŞÜK); }}

Tamam, birkaç şey.

İlk önce yenisini ekledik LED1 ve LED2 sabitler listesine iğne. Sonra ikisini de ekledim pinMode () atamak için işlev çağrıları LED1 ve LED2 ÇIKIŞ tipleri olarak.

döngü () gerçek etin olduğu yerdir. IF beyanları için, şartlar her kontrol edildiğinde ateşlenmesi doğru veya yanlış olan herhangi bir davaya ihtiyacım var. ** Bunları her koşulda ekledim.

Sonra kullandım digitalWrite () LED'lere yazma işlevi. Tinkercad'da kontrol et. Düğmeyi değiştirdiğinizde devre devrede çalışıyor mu?

** Bunu yazmanın daha etkili yolları vardır, örneğin başkasıyla veya başka kısa notasyonlarda olduğu gibi. Netlik için bunu yaptım:)

Adım 11: Sonuçları Eşleme (Girdi)

Tamam, bu son adım!

Tam sayıların eşlenmesi, bazı cihazları yönetmenin güçlü bir yoludur. Diyelim ki bir servo motoru potansiyometre ile hareket ettirmek istiyorsun. Bunu yapmanın bir yolu, potansiyometrenin değerini okuyan küçük bir kod eklemektir. Yaptığımız şey, değeri 0 ile 1023 arasındaki analog pimdeki normal değerden daha kullanışlı bir şeye dönüştürmektir. Haritalamayı yapalım - motorlar başka bir gün!

Bunun için değeri okuyup seriye yazdıracağız. Tüm kod tabanını önceki adımlardan yeniden yazmak yerine, boş bir başlıkla başlayacağım kurmak() ve döngü (). Kodu, Tinkercad’da mevcut kodunuza ekleyebilirsiniz ve gayet iyi çalışacaktır.

// Pin değeriyle sabit atama

const int potPosition = A0; void setup () {pinMode (potPosition, INPUT); Serial.begin (9600); } void loop () {// Değeri okuyun ve Serial int'e yazdırın currentPotValue = analogRead (potPosition); int mappedPotValue = harita (currentPotValue, 0, 1023, 0, 50); Seri baskısı ("Pot Değeri (orijinal):"); Serial.println (currentPotValue); Seri.print ("Pot Değeri (yeni):"); Serial.println (mappedPotValue); gecikmesi (500); }

Böylece Harita () fonksiyon sadece sayıları değiştirir. 5 argüman alıyor. İlki, haritalamak istediğimiz değişken. İkinci ve üçüncü orijinal aralıktır. Dördüncü ve beşinci yenidir. Arduino bizim için genel masrafları yönetiyor ve dönüşümü yapıyor.

Okumasını biraz kolaylaştırmak için bir gecikme ekledim.

Harika!

Adım 12: Son Notlar

Bu, Arduino ile yaptığınız ciddi çalışmalardan alıyor. Kafanızı temellerin etrafında gezdirmek ve ne yapabileceğinizi anlamak için harika bir yol. Var yani çok daha fazlası. Başka bir derste, servolar gibi temel motorları kullanmayı ele alacağız. Ayrıca fonksiyonlara ve sınıflara da bakacağız. SD kart verileri için de birkaç istek var, bu yüzden bunu anlatacağım.

Devreyi Tinkercad'de görmek istiyorsanız, bunu yapabilirsiniz ve ben onu yukarıda yerleştirdim.

Sorularınız varsa, lütfen bir yorum bırakın ve ben size hemen geri dönmeye çalışacağım. Ayrıca hataları görürseniz, bana mesaj gönderin; hatayı düzeltip alacak kredisi vereceğim. Teşekkür ederim!