KS0085 Keyestudio Akıllı Ev Kiti - Arduino DIY STEM İçin
Akıllı ev, geleceğin trendi. Kanepede uzandığınızı ve her şeyi sıradan bir cep telefonuyla kontrol ettiğinizi hayal edin. İnanılmaz! Rahat bir banyoya hazır olduğunuzda perdeler otomatik olarak açılıp kapanabilir, su sıcaklığı ılıman moda dönebilir. Alternatif olarak, evinizdeki farklı ışık sahnesini elde edebilirsiniz. Böyle yaşamak için sabırsızlanacağına inanıyorum. Bu derste, Arduino yazılımı ile bir DIY akıllı ev kiti yapmak için akıllı evi simüle ediyoruz. DIY(Kendin-Yap)'in keyfini çıkarmak için bizi takip edin!
Kit Listesi
Yazılımı indirin ve sürücüyü kurun
Yazılımı indirin
Kontrol panosu aldığımızda öncelikle Arduino IDE ve sürücüsünü indirmemiz gerekiyor. Arduino IDE'yi resmi web sitesinden indirebilirsiniz: https://www.arduino.cc/, göz atma çubuğundaki YAZILIM'a tıklayın, aşağıda gösterildiği gibi indirme sayfasına girmek için "İNDİRMELER" e tıklayın:Arduino için çeşitli sürümler var, sadece sisteminize uygun bir sürüm indirin, nasıl indirip kuracağınızı göstermek için WINDOWS sistemini örnek olarak alacağız.
WINDOWS sistemi için iki sürüm vardır, biri yüklü sürüm, diğeri indirme sürümüdür, sadece dosyayı doğrudan bilgisayara indirip sıkıştırmanız gerekir. Bu iki versiyon normal olarak kullanılabilir. Birini seçin ve bilgisayarınıza indirin.
SADECE İNDİR'e tıklamanız, ardından yüklemek için indirilen dosyaya tıklamanız yeterlidir. Ve ZIP dosyası indirildiğinde, doğrudan sıkıştırmayı açıp başlatabilirsiniz.
Keyestudio PLUS Kontrol Kartı
Açıklama
Keyestudio PLUS kontrol kartı, Arduino IDE geliştirme ortamı ile tam uyumludur. Arduino UNO kartının tüm fonksiyonlarını içerir. Üstelik yaptığımız bazı iyileştirmeler, işlevini oldukça güçlendiriyor. Devre oluşturmayı ve kod yazmayı öğrenmek en iyi seçimdir. Başlayalım!Keyestudio PLUS kontrol kartı, Arduino IDE geliştirme ortamı ile tam uyumludur. Arduino UNO kartının tüm fonksiyonlarını içerir. Üstelik yaptığımız bazı iyileştirmeler, işlevini oldukça güçlendiriyor. Devre oluşturmayı ve kod yazmayı öğrenmek en iyi seçimdir. Başlayalım!
Seri iletişim arayüzü: D0 RX, D1 TX PWM arayüzü (darbe genişlik
modülasyonu): D3 D5 D6 D9 D10 D11 Harici kesme arayüzü: D2 (kesinti 0)
ve D3 (kesinti 1) SPI iletişim arayüzü: D10 SS, D11 MOSI, D12, MISO'dur,
D13, SCK IIC iletişim bağlantı noktasıdır: A4, SDA'dır, A5, SCL'dir
Sürücü yükleme
Keyestudio PLUS kontrol panosunun sürücüsünü kuralım. PLUS kartındaki USB-TTL yongası, CP2102 seri yongasını kullanır. Bu çipin sürücü programı Arduino 1.8 ve üzeri sürümlerde yer almaktadır ve bu da uygundur. Kartın USB bağlantı noktasını takın, bilgisayar donanımı tanıyabilir ve CP2102 sürücüsünü otomatik olarak yükleyebilir.Sayfada, CP2102 sürücüsünün başarısız bir şekilde kurulduğunu gösteren sarı bir ünlem işareti var. Ardından donanıma çift tıklıyor ve sürücüyü güncelliyoruz.
Aşağıdaki sayfaya girmek için "Tamam" ı tıklayın, "güncellenmiş sürücü yazılımı için bilgisayarıma göz atın" ı tıklayın, kurulu veya indirilmiş ARDUINO yazılımını bulun. Aşağıda gösterildiği gibi:
Arduino yazılımı yüklü paket açık sürücü klasöründe DRIVERS klasörü bulunmaktadır ve CP210X serisi yongaların sürücüsünü görebilirsiniz.()
"Gözat" ı tıklarız, ardından sürücü klasörünü buluruz veya dikdörtgen
kutuda arama yapmak için "sürücü" girebilir ve ardından "ileri" ye
tıklayabilirsiniz, sürücü başarıyla yüklenecektir. (Arduino yazılım
klasörünü masaüstüne koyuyorum, yolumu takip edebilirsiniz)
Cihaz yöneticisini açın, sarı ünlem işaretinin kaybolduğunu göreceğiz. CP2102 sürücüsü başarıyla kuruldu.
Arduino IDE Setting
Programı panele yüklerken hatalardan kaçınmak için, bilgisayarınıza
bağlı kartla eşleşen doğru Arduino kartını seçmeniz gerekir. Ardından
Arduino yazılımına geri dönün, Araçlar → Pano'ya tıklayıp kartı
seçmelisiniz. (Aşağıda gösterildiği gibi)
Programı panele yüklerken hatalardan kaçınmak için, sırasını bağlı
kartla doğru Arduino kartını seçmeniz gerekir. Ardından Arduino
yazılımına geri dönün, Araçlar → Pano'ya yazıp kartı seçmelisiniz.
(İngilizce)
A- Herhangi bir derleme hatası olup olmadığını doğrulamak için kullanılır.
B- Taslağı Arduino kartınıza yüklemek için kullanılır.
C- Yeni bir eskizin kısayol penceresini oluşturmak için kullanılır.
D- Doğrudan bir örnek çizimi açmak için kullanılır.
E- Çizimi kaydetmek için kullanılır.
F- Karttan alınan seri veriyi seri monitöre göndermek için kullanılır.
Örnek seçmek için dosyayı açın, aşağıda gösterildiği gibi TEMEL'den BLINK'i seçin:
Set panosu ve COM portu, ilgili kart ve COM portu IDE'nin sağ alt tarafında gösterilir.
Click programı derlemeye başlamak için hataları kontrol edin.
Click programı yüklemek için, başarıyla yükleyin.
Programı başarıyla yükleyin, yerleşik LED 1 saniye yanar, ışıklar 1 saniye söner. Tebrikler, ilk programı bitirdiniz.
Kitaplık Nasıl Eklenir?
Kitaplıklar nedir? Kitaplıklar,
bir sensöre, ekrana, modüle vb. Bağlanmanızı kolaylaştıran bir kod
koleksiyonudur. Örneğin, yerleşik LiquidCrystal kitaplığı LCD ekranlarla
konuşmanıza yardımcı olur. İnternette indirilebilecek yüzlerce ek
kitaplık vardır. Yerleşik kitaplıklar ve bu ek kitaplıklardan bazıları
referansta listelenmiştir.
Burada, kitaplık eklemenin en basit yolunu tanıtacağız.
Adım 1 : Arduino IDE'yi iyice indirdikten sonra, Arduino IDE'nin simgesine sağ tıklayabilirsiniz.
Aşağıda gösterilen "Dosya konumunu aç" seçeneğini bulun:
Adım 2: Arduino'nun kütüphane dosyası olan kütüphaneler klasörünü bulmak için buraya girin.
Adım 3 : Aşağıda gösterildiği gibi akıllı evin "kitaplıklarını” (bağlantıda görülüyor: https://fs.keyestudio.com/KS0085) bulmak için bir sonraki adım:
You just need to replicate and paste into the libraries folder of Arduino IDE.
Home smart kitaplığı aşağıda gösterildiği gibi başarıyla kurulmuştur:
Projeler
Pekala, doğrudan projelerimize geçelim. Bu kitte 14 sensör ve modül bulunmaktadır. Akıllı evi derinden tanımanız için basit sensörle başlayacağız. Ancak, Arduino bilgisine meraklıysanız. Bu adımları atlayabilir, akıllı ev kitini doğrudan monte edebilirsiniz (klasörde montaj videosu var)
Not: Bu kursta, her bir sensörün / modülün (G, -, GND) ile işaretlenen arabirimi negatif kutbunu gösterir; G, sensör kalkanının veya kontrol kartının G veya - veya GND'sine bağlıdır; "V", V veya VCC veya 5V ile bağlantılı pozitif kutbu ifade eder.
Proje 1: LED Yanıp Sönme
Açıklama:
Önceki derste keystudio V4.0 geliştirme kartının sürücüsünü kurduk, basit projelerden başladık. Bu ders için, başlangıç için temel uygulama olan "Arduion yanıp söner LED” i gerçekleştireceğiz. Yanıp sönme efekti gerçekleştirmek için LED'i kontrol etmek için bir test kodu sağlıyoruz. Kodda, aydınlatma süresini açıp kapatarak farklı bir yanıp sönen sahne ayarlayabilirsiniz. GND ve VCC'yi açın, sinyal ucu S yüksek olduğunda LED yanar, tersine sinyal ucu S düşük olduğunda LED söner.
Özellikler :Kontrol arayüzü: dijital bağlantı noktası
Çalışma gerilimi: DC 3.3-5V
Pim aralığı: 2,54 mm
LED ekran rengi: beyaz
Boyut: 30 * 20mm
Ağırlık: 3g
Sensör kalkanı
Arduino kontrol kartını genellikle kablolaması zor olan diğer
sensörler, modüller ve çoklu sensörlerle birleştiririz. Tersine, bu
sensör kalkanı bu sorunu karşılar, sadece keyestudio PLUS kontrol
panosunu kullandığınızda istiflemeniz gerekir.
Bu kalkan doğrudan 3PIN sensörlerine takılabilir, seri iletişim, IIC
iletişimi, SPI iletişimi gibi yaygın kullanılan iletişim bağlantı
noktalarını da ortadan kaldırır. Dahası, kalkan bir sıfırlama düğmesi ve
2 sinyal ışığı ile birlikte gelir.
Kablonun yanında, LED modülünü kalkanın D13'ü ile bağlayın.
Not: Beyaz LED modülünün G, V ve S'si, genişletme kartının G, V ve 13'ü ile bağlantılıdır.
Test Kodu :
/* Keyestudio smart home Kit for Arduino Project 1 Blink http://www.keyestudio.com */ void setup() { // initialize digital pin 13 as an output. pinMode(13, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(13, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }// |
Test sonucu:
Test kodunu başarıyla yükleyin, dönüşümlü olarak beyaz LED yanıp sönmeye başlar, 1000 ms boyunca yanar, 1000 ms için yanar.
Kod Açıklama
Kod uzun ve dağınık görünüyor, ancak çoğu yorum. Arduino'nun grameri C'ye dayanmaktadır.
Yorumlar genellikle iki ifade biçimine sahiptir:
/ * ....... * /: uzun paragraf açıklamaları için uygundur
//: tek satırlı yorumlar için uygundur
Dolayısıyla kod, yazar, yayınlanan anlaşma vb. Gibi birçok önemli bilgiyi içerir.
Çoğu insan yorumları atlar, başlangıç olarak kodlara bakma alışkanlığı geliştirmelidir. Öncelikle yorumları kontrol edin. Sağlanan bilgileri içerirler ve test kodunu hızlı bir şekilde anlamanıza yardımcı olurlar. İkincisi, yorum yazma alışkanlığını oluşturun
// the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 13 as an output. pinMode(13, OUTPUT); } |
// the loop function runs over and over again forever void loop() { digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(13, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } |
Loop () işlevinde yazar,
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite (): pinin çıkış voltajını yüksek veya düşük seviyeye
ayarlayın. D13 çıkışını yüksek seviyede yapıyoruz, ardından led yanar.
delay(1000); // wait for a second
Gecikme fonksiyonu geciktirme süresi için kullanılır, 1000ms 1s'dir, birim ms'dir
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
Benzer şekilde D13 çıkışını düşük seviyede yapalım, led söner.
delay(1000); // wait for a second
Proje 2: Solunum Işığı
Açıklama
Bir önceki derste LED'i açıp kapatarak yanıp sönmesini sağlıyoruz. Bu projede, solunum etkisini simüle etmek için LED parlaklığını PWM aracılığıyla kontrol edeceğiz. Benzer şekilde, farklı nefes alma etkisini göstermek için koddaki adım uzunluğunu ve gecikme süresini değiştirebilirsiniz.PWM, analog çıkışı dijital yollarla kontrol etmenin bir yoludur. Analog çıkışı kontrol etmek için farklı görev döngülerine (sürekli olarak yüksek ve düşük seviyeler arasında geçiş yapan bir sinyal) sahip kare dalgalar oluşturmak için dijital kontrol kullanılır.Genel olarak, portun giriş voltajı 0V ve 5V'tur. Ya 3V gerekliyse? Ya da 1V, 3V ve 3.5V arasında geçiş yaparsanız? Direnci sürekli değiştiremiyoruz. Bu durum için PWM ile kontrol etmemiz gerekiyor.
Arduino dijital port voltaj çıkışı için, 0V ve 5V voltaj çıkışına karşılık gelen yalnızca LOW ve HIGH vardır. DÜŞÜK'u 0 ve YÜKSEK'i 1 olarak tanımlayabilir ve Arduino'nun 1 saniye içinde beş yüz 0 veya 1 sinyal vermesine izin verebilirsiniz. Beş yüz 1 çıktı ise 5V; hepsi 1 ise, bu 0V'dir. 010101010101 çıkışı bu şekilde yapılırsa, çıkış portu 2.5V olur, bu da film göstermeye benzer. İzlediğimiz film tamamen kesintisiz değil. Aslında saniyede 25 resim çıkarır. Bu durumda, insan bunu söyleyemez, PWM de söyleyemez. Farklı voltaj istiyorsanız, 0 ve 1 oranını kontrol etmeniz gerekir. Birim zamanda 0,1 sinyal çıkışı ne kadar fazlaysa kontrol o kadar doğru olur.
Ekipman :
Bağlantı şeması:
Not: Sensör korumasında, sarı LED modülünün G, V ve S pinleri G, V ve 5 ile bağlantılıdır.
Test Kodu :
/* Keyestudio smart home Kit for Arduino Project 2 PWM http://www.keyestudio.com */ int ledPin = 5; // Define the LED pin at D5 void setup () { pinMode (ledPin, OUTPUT); // initialize ledpin as an output. } void loop () { for (int value = 0; value<255; value = value + 1) { analogWrite (ledPin, value); // LED lights gradually light up delay (5); // delay 5MS } for (int value = 255; value>0; value = value-1) { analogWrite (ledPin, value); // LED gradually goes out delay (5); // delay 5MS }} // |
Test sonucu:
Test kodunu başarıyla yüklediğinizde LED, ışık hemen yanar ve söner, insan nefesi gibi kademeli olarak daha parlak ve daha koyu olur
Kod analizi
Bazı ifadeleri tekrar etmemiz gerektiğinde, ifade formatı için aşağıdaki gibi "for” ifadesi kullanmamız gerekir:
"For" döngüsel sıra:
1. Tur : 1 → 2 → 3 → 4
2.Tur : 2 → 3 → 4
… 2 numara belirlenene kadar "for" döngüsü sona erer,
Bu siparişi öğrendikten sonra koda geri dönün:
for (int value = 0; value < 255; value=value+1){ ... } for (int value = 255; value >0; value=value-1){ ... } |
"For" ifadesinde yeni bir işlev var ----- analogWrite ()
Dijital portun sadece 0 ve 1 olmak üzere iki durumuna sahip olduğunu biliyoruz. Peki bir analog değer dijital bir değere nasıl gönderilir? Burada bu işleve ihtiyacımız var, Arduino kartını gözlemleyin ve "~" ile 6 pin bulacaksınız. Diğer pinlerden farklıdırlar ve PWM sinyalleri verebilirler.
İşlev biçimi aşağıdaki gibidir:
analogWrite (pin, değer) analogWrite (), PWM portu için 0 ~ 255 arasında bir analog değer yazmak için kullanılır, bu nedenle değer 0 ~ 255 aralığındadır, sadece dijital pinleri PWM fonksiyonu ile yazdığınıza dikkat edin. pin 3, 5, 6, 9, 10, 11.
PWM, analog miktarı dijital yöntemle elde eden bir teknolojidir. Dijital kontrol bir kare dalga oluşturur ve kare dalga sinyali yalnızca iki anahtarlama durumuna sahiptir (yani, dijital pinlerimizin yüksek veya düşük seviyeleri). Açma ve kapama süresinin oranını kontrol ederek, 0 ila 5V arasında değişen bir voltaj simüle edilebilir. Alınan süre (akademik olarak yüksek seviye olarak adlandırılır) darbe genişliği olarak adlandırılır, bu nedenle PWM'ye darbe genişliği modülasyonu da denir.
Aşağıdaki beş kare dalgayla, PWM hakkında daha fazla bilgi edelim.
Yukarıdaki şekilde, yeşil çizgi bir dönemi temsil eder ve analogWrite () değeri de Görev Döngüsü olarak adlandırılan bir yüzdeye karşılık gelir. Görev döngüsü, yüksek düzey sürenin bir döngüdeki düşük düzey süreye bölündüğünü ifade eder. Yukarıdan aşağıya, ilk kare dalganın görev döngüsü% 0'dır ve karşılık gelen değeri 0'dır. LED parlaklığı en düşüktür, yani kapanır. Yüksek seviye ne kadar uzun sürerse, LED o kadar parlaktır. Bu nedenle, son görev döngüsü% 100'dür, bu da 255'e karşılık gelir, LED en parlaktır. % 25 daha koyu anlamına gelir.
PWM çoğunlukla LED parlaklığını veya motorun dönüş hızını ayarlamak için kullanılır.
Akıllı robot arabayı kontrol etmede hayati rol oynar. Bir sonraki projeye girmek için sabırsızlanacağına inanıyorum.
Proje 3: Pasif Buzzer
Açıklama
Arduino'nun tamamladığı verimli interaktif işler var. En yaygın olanı ses ve ışık göstergesidir. Deney yapmak için her zaman LED kullanıyoruz. Bu ders için, ses yaymak için devre tasarlıyoruz. Evrensel ses bileşenleri zil ve kornalardır. Buzzer kullanımı daha kolaydır. Buzzer, aktif zil ve pasif zil hakkında içerir. Bu deneyde pasif zil kullanıyoruz. Pasif zil kullanırken, farklı frekanslı kare dalgaları girerek farklı sesleri kontrol edebiliriz. Deney sırasında, zil sesini çıkarmak için kodu kontrol ediyoruz, "tik, tik" sesi ile başlıyoruz, ardından pasif zil sesinin "yapmıyorum" yapmasını sağlıyoruz ve belirli şarkılar çalıyoruz.
Bağlantı şeması:
Not: Pasif zil modülünün G, V ve S portu blendaj üzerindeki G, V ve 3'e ayrı ayrı bağlanır, güç verin.
Test Kodu :
/* Keyestudio smart home Kit for Arduino Project 3.1 Buzzer http://www.keyestudio.com */ int tonepin = 3; // Set the Pin of the buzzer to the digital D3 void setup () { pinMode (tonepin, OUTPUT); // Set the digital IO pin mode to output } void loop () { unsigned char i, j; while (1) { for (i = 0; i <80; i ++) // output a frequency sound { digitalWrite (tonepin, HIGH); // Sound delay (1); // Delay 1ms digitalWrite (tonepin, LOW); // No sound delay (1); // Delay 1ms } for (i = 0; i <100; i ++) // output sound of another frequency { digitalWrite (tonepin, HIGH); // Sound delay (2); // delay 2ms digitalWrite (tonepin, LOW); // No sound delay (2); // delay 2ms }}} // |
Test sonucu:
Yukarıdaki koddan 80 ve 100, "for” ifadesindeki frekansa karar verir. Gecikme, müzikteki vuruş gibi süreyi kontrol eder.
Frekansı kontrol edersek ve iyi vuruş yaparsak harika müzikler çalacağız, o halde tonların sıklığını bulalım. Aşağıda gösterildiği gibi:
Ton frekansını öğrendikten sonra, notanın çalma süresini kontrol etmenin yanında. Müzik, her nota belirli bir süre çalındığında üretilecektir. Nota ritmi bir vuruş, yarım vuruş, 1/4 vuruş, 1/8 vuruş olarak bölünmüştür, nota için süreyi 1, yarım vuruş 0,5, 1/4 vuruş 0,25, 1/8 vuruş 0.125 ....., Bu nedenle müzik çalınır. "Neşeye Övgü" örneğini alacağız
Notasyondan, müzik 4/4 vuruşlu.Açıklamamız gereken özel notlar var:
1. Normal nota, ilk not 3 gibi, 350'ye (frekansa) karşılık gelir, 1 vuruş işgal eder
2. Altı çizili not 0,5 vuruş anlamına gelir
3. Noktalı (3) nota, 0,5 vuruş eklendiği anlamına gelir, yani 1 + 0,5 vuruş
4. ”-” işaretli not, 1 vuruşun eklendiğini, yani 1 + 1 vuruş olduğunu gösterir.
5. Ark ile art arda gelen iki not legato anlamına gelir, bazı değerleri azaltmak veya artırmak gibi legato'nun arkasındaki notun frekansını biraz değiştirebilirsiniz (kendi başınıza hata ayıklamanız gerekir), ses daha yumuşak olacaktır.
/* Keyestudio smart home Kit for Arduino Project 3.2 Buzzer music http://www.keyestudio.com */ #define NTD0 -1 #define NTD1 294 #define NTD2 330 #define NTD3 350 #define NTD4 393 #define NTD5 441 #define NTD6 495 #define NTD7 556 #define NTDL1 147 #define NTDL2 165 #define NTDL3 175 #define NTDL4 196 #define NTDL5 221 #define NTDL6 248 #define NTDL7 278 #define NTDH1 589 #define NTDH2 661 #define NTDH3 700 #define NTDH4 786 #define NTDH5 882 #define NTDH6 990 #define NTDH7 112 // List all D-tuned frequencies #define WHOLE 1 #define HALF 0.5 #define QUARTER 0.25 #define EIGHTH 0.25 #define SIXTEENTH 0.625 // List all beats int tune [] = // List each frequency according to the notation { NTD3, NTD3, NTD4, NTD5, NTD5, NTD4, NTD3, NTD2, NTD1, NTD1, NTD2, NTD3, NTD3, NTD2, NTD2, NTD3, NTD3, NTD4, NTD5, NTD5, NTD4, NTD3, NTD2, NTD1, NTD1, NTD2, NTD3, NTD2, NTD1, NTD1, NTD2, NTD2, NTD3, NTD1, NTD2, NTD3, NTD4, NTD3, NTD1, NTD2, NTD3, NTD4, NTD3, NTD2, NTD1, NTD2, NTDL5, NTD0, NTD3, NTD3, NTD4, NTD5, NTD5, NTD4, NTD3, NTD4, NTD2, NTD1, NTD1, NTD2, NTD3, NTD2, NTD1, NTD1 }; float durt [] = // List the beats according to the notation { 1,1,1,1, 1,1,1,1, 1,1,1,1, 1 + 0.5,0.5,1 + 1, 1,1,1,1, 1,1,1,1, 1,1,1,1, 1 + 0.5,0.5,1 + 1, 1,1,1,1, 1,0.5,0.5,1,1, 1,0.5,0.5,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,0.5,0.5, 1,1,1,1, 1 + 0.5,0.5,1 + 1, }; int length; int tonepin = 3; // Use interface 3 void setup () { pinMode (tonepin, OUTPUT); length = sizeof (tune) / sizeof (tune [0]); // Calculate length } void loop () { for (int x = 0; x |
Geliştirme panosuna test kodunu yükleyin, "Ode to joy” duyuyor musunuz?
Proje 4 : Düğme Modülüyle LED'i Kontrol Etme
Açıklama:
Bu projede buton modülü ile led'in yanmasını ve sönmesini kontrol edeceğiz. Düğmeye basıldığında, sinyal sonu düşük seviyede (0) çıkış verir; bırakıldığında, sensörün sinyal ucu yüksek seviyeyi (1) korur.
Bağlantı şeması:
Not: Düğme sensör modülünün G, V ve S pinleri blendaj üzerindeki G, V ve 4'e ayrı ayrı bağlanır ve sarı LED modülünün G, V ve S pinleri G, V ve Kalkanda 5.
Test Kodu :Programı tasarlamanın yanında buton ile led yakıyoruz. Önceki deneylerle karşılaştırıldığında, bir koşullu yargı beyanı ekliyoruz. İf ifadesini kullanıyoruz. Arduino'nun yazılı cümleleri C diline dayanmaktadır, bu nedenle C'nin koşul yargılama ifadesi while, swich vb. Gibi Arduino için uygundur.
Bu ders için, basit "eğer" ifadesini örnek olarak alıyoruz:
Butonuna basılırsa dijital 4 düşük seviyeli ise dijital 5 çıkışı yüksek seviyeli yaparız, sonra led yanar; tersine buton bırakılırsa dijital 4 yüksek seviyeli ise dijital 5 çıkışı düşük seviyeli yaparız sonra LED söner.
Referansınıza gelince :
/ * Keyestudio smart home Kit for Arduino Project 4 Button http://www.keyestudio.com * / int ledpin = 5; // Define the led light in D5 int inpin = 4; // Define the button in D4 int val; // Define variable val void setup () { pinMode (ledpin, OUTPUT); // The LED light interface is defined as output pinMode (inpin, INPUT); // Define the button interface as input } void loop () { val = digitalRead (inpin); // Read the digital 4 level value and assign it to val if (val == LOW) // Whether the key is pressed, the light will be on when pressed {digitalWrite (ledpin, HIGH);} else {digitalWrite (ledpin, LOW);} } // |
Test sonucu:
Bu deney oldukça basittir ve çeşitli devrelere ve elektrikli aletlere yaygın olarak uygulanmaktadır. Hayatımızda, bu prensibi herhangi bir cihazda bulabilirsiniz, örneğin tipik cihaz olan herhangi bir düğmeye basıldığında arka ışığın yanması gibi.
Proje 5 : 1-kanallı Röle Modülü
Açıklama
Bu modül, Arduino'ya özel bir modüldür ve arduino sensör genişletme
kartı ile uyumludur. Bir kontrol sistemine (giriş döngüsü olarak da
adlandırılır) ve kontrollü bir sisteme (çıkış döngüsü olarak da
adlandırılır) sahiptir. Otomatik kontrol devrelerinde yaygın olarak
kullanılan röle modülü, daha küçük bir akım ve daha düşük bir voltaj ile
daha büyük bir akımı ve daha düşük bir voltajı kontrol eden bir
"otomatik anahtar" dır.
Bu nedenle devrede otomatik ayarlama, güvenlik koruması ve dönüştürme
devresi rolünü oynar. Arduino'nun LED ışık şeritleri, DC motorlar,
minyatür su pompaları, solenoid valf takılabilir arabirim gibi 3A
altındaki yükleri sürmesini sağlar. Röle modülünün ana dahili
bileşenleri elektromıknatıs A, armatür B, yay C, hareketli kontak D,
statik kontak (normalde açık kontak) E ve statik kontak (normalde kapalı
kontak) F'dir (şekilde gösterildiği gibi).
Bobinin her iki ucuna belirli bir voltaj uygulandığı sürece, elektromanyetik etkiler yaratmak için bobinden belirli bir akım geçecek ve armatür, elektromanyetik kuvvetin etkisi altında geri dönüş yayının çekme kuvvetine karşı demir çekirdeği çekecektir. çekim, böylece hareketli kontağı ve statik kontağı (normalde açık kontak) çekmek için tahrik eder. Bobin bağlantısı kesildiğinde, elektromanyetik emme de kaybolacak ve armatür, yayın reaksiyon kuvveti altında orijinal konumuna geri dönecek, hareketli kontağı ve orijinal statik kontağı (normalde kapalı kontak) serbest bırakacaktır. Bu içeri çeker ve serbest bırakır, böylece devrede açma ve kapama amacına ulaşır. Rölenin "normalde açık ve kapalı" kontakları bu şekilde ayırt edilebilir: Röle bobini kapatıldığında bağlantısız durumdaki statik kontaklar "normalde açık kontaklar" olarak adlandırılır; bağlı durumdaki statik kontaklar "normalde kapalı kontak" olarak adlandırılır. Modül, modülü diğer ekipmanlara sabitlemeniz için 2 konumlandırma deliği ile birlikte gelir.
Özellikler :Çalışma gerilimi: 5V (DC)
Arayüz: G, V, S arayüzü
Giriş sinyali: dijital sinyal (yüksek seviye 1, düşük seviye 0)
Kontaklar: statik kontaklar (normalde açık kontaklar, normalde kapalı kontaklar) ve hareketli kontaklar
Anma akımı: 10A (NO) 5A (NC)
Maksimum anahtarlama gerilimi: 150 V (AC) 24 V (DC)
Elektrik çarpması akımı: 3A'dan az
Ağırlık: 15g
Temas eylem süresi: 10 ms
Ekipman :
Bağlantı şeması:
Not: Kalkanda, 1 kanallı röle modülünün G, V ve S pinleri sırasıyla G, V ve 12'ye bağlanır. NO, V ile bağlantılıdır; beyaz LED'in G, V ve S pinleri sırasıyla G, V ve röle modülündeki NO'nun statik kontağına bağlanır.Test Kodu :
/* Keyestudio smart home Kit for Arduino Project 5 Relay http://www.keyestudio.com */ int Relay = 12; // Define the relay pin at D12 void setup () { pinMode (13, OUTPUT); // Set Pin13 as output digitalWrite (13, HIGH); // Set Pin13 High pinMode (Relay, OUTPUT); // Set Pin12 as output } void loop () { digitalWrite (Relay, HIGH); // Turn off relay delay (2000); digitalWrite (Relay, LOW); // Turn on relay delay (2000); } // |
Proje 6 : Fotosel Sensör
Açıklama
Özellikler :
Çalışma gerilimi: 3.3V-5V (DC)
Arayüz: 3PIN arayüzü
Çıkış sinyali: analog sinyal
Ağırlık: 2,3 g
Ekipman:
Bağlantı şeması:
Not: Genişletme kartında, fotosel sensör modülünün G, V ve S pinleri
G, V ve A1'e bağlanır; sarı LED modülünün G, V ve S pinleri G, V ve 5
ile ayrı ayrı bağlanır.
Test Kodu:
/* Keyestudio smart home Kit for Arduino Project 6 photocell http://www.keyestudio.com */ int LED = 5; // Set LED pin at D5 int val = 0; // Read the voltage value of the photodiode void setup () { pinMode (LED, OUTPUT); // LED is output Serial.begin (9600); // The serial port baud rate is set to 9600 } void loop () { val = analogRead (A1); // Read the voltage value of A1 Pin Serial.println (val); // Serial port to view the change of voltage value if (val <900) {// Less than 1000, LED light is off digitalWrite (LED, LOW); } else {// Otherwise, the LED lights up digitalWrite (LED, HIGH); } delay (10); // Delay 10ms } // |
Test sonucu:
Test kodunu yükledikten sonra LED yanar, el feneri ile fotosel sensörünü (veya cep telefonundan flaşı) işaret edin, LED'in otomatik olarak kapalı olduğunu göreceksiniz. Ancak el fenerini çıkarın, LED tekrar yanacaktır.
Gözden Geçirme Bu kod dizisi için basitçe. Analog port üzerinden değer okuyoruz, lütfen analog miktarın giriş ve çıkış moduna ihtiyaç duymadığına dikkat edin.Fotosel sensörünün analog değerini analog port ile okuyun.
Işık olduğunda analog değer kademeli olarak azalacaktır, değer 1000'e kadar çıkmaktadır, bu değer ihtiyacınız olan parlaklığa göre seçilebilir. Yöntem seçin: tüm cihazı LED'in kapalı olduğu ortama koyun, gösterilen değeri kontrol etmek için seri monitörü açın, 1000 değerini bu değerle değiştirin. Seri monitörden okuma değeri, kodu modüle etmenin iyi bir yoludur
Proje 7 : Motor Servo Açısının Ayarlanması
Açıklama
Bu kiti yaptığımızda genellikle kapıları ve pencereleri servolarla
kontrol ederiz. Bu kursta, prensibini ve servo motorların nasıl
kullanılacağını tanıtacağız. Servo motor, pozisyon kontrollü bir döner
aktüatördür. Esas olarak gövde, devre kartı, çekirdeksiz motor, dişli ve
konum sensöründen oluşur. Çalışma prensibi, servonun MCU veya alıcı
tarafından gönderilen sinyali alması ve 20 ms'lik bir periyotta ve 1.5
ms genişliğinde bir referans sinyali üretmesi, daha sonra elde edilen DC
öngerilim voltajını potansiyometrenin voltajıyla karşılaştırması ve bir
voltaj farkı vermesidir.
Servo motor birçok özelliğe sahiptir. Ancak hepsinde kahverengi,
kırmızı, turuncu renklerle ayırt edilen üç bağlantı kablosu vardır
(farklı markaların farklı renkleri olabilir). Kahverengi olan GND için,
kırmızı olan güç pozitif, turuncu olan sinyal hattı içindir.
Servo motorun dönüş açısı, PWM (Darbe Genişlik Modülasyonu) sinyalinin
görev döngüsünü düzenleyerek kontrol edilir. PWM sinyalinin standart
döngüsü 20ms'dir (50Hz). Teorik olarak, genişlik 1ms-2ms arasında
dağıtılır, ancak aslında 0.5ms-2.5ms arasındadır. Genişlik, 0 ° ile 180 °
arasındaki dönüş açısına karşılık gelir. Ancak farklı marka motorlar
için aynı sinyalin farklı dönüş açısına sahip olabileceğini unutmayın.
Özellikler:
Çalışma voltajı: DC 4.8V ~ 6V Çalışma açısı aralığı: yaklaşık 180 ° (500 → 2500 μsn'de) Darbe genişliği aralığı: 500 → 2500 μsn Yüksüz hız: 0.12 ± 0.01 sn / 60 (DC 4.8V) 0.1 ± 0.01 sn / 60 (DC 6V) Yüksüz akım: 200 ± 20mA (DC 4.8V) 220 ± 20mA (DC 6V) Durdurma torku: 1.3 ± 0.01kg · cm (DC 4.8V) 1.5 ± 0.1kg · cm (DC 6V) Durdurma akımı: ≦ 850mA (DC 4.8V) ≦ 1000mA (DC 6V) Bekleme akımı: 3 ± 1mA (DC 4.8V) 4 ± 1mA (DC 6V) Uç uzunluğu: 250 ± 5 mm Görünüm boyutu: 22.9 * 12.2 * 30mm Ağırlık : 9 ± 1 g (servo korna olmadan) Depolama sıcaklığı: -20 ℃ ~ 60 ℃ Çalışma sıcaklığı: -10 ℃ ~ 50 ℃
Deney ekipmanı :
Bağlantı şeması:
Not: Servo, G (GND), V (VCC), 9'a bağlanır. Servonun kahverengi teli Gnd (G) 'ye bağlanır, kırmızı kablo 5v (V) ile bağlanır ve turuncu kablo bağlanır dijital pime 9.
Test Kodu :
/* Keyestudio smart home Kit for Arduino Project 7 Sevro http://www.keyestudio.com */ #include |
Test sonucu:
Kodu yükleyin, bağlantı şemasına göre kablolayın ve gücü açın. Servo 0 ° 'den 180 °' ye, ardından 180 ° ~ 0 ° 'ye döner
Proje 8 : Fan Modülü
Açıklama
L9110 fan modülü, L9110 motor kontrol çipini kullanır, motorun dönüş yönünü ve hızını kontrol edebilir. Üstelik bu modül verimli ve yüksek kaliteli fan ile alevi 20 cm mesafede söndürebilir. Aynı şekilde yangın robotunun da önemli bir parçasıdır.Özellikler: