KS0085 Keyestudio Akıllı Ev Kiti - Arduino DIY STEM İçin

KS0085 Keyestudio Akıllı Ev Kiti - Arduino DIY STEM İçin


thumb

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


thumb

thumb

thumb

thumb

thumb

thumb

thumb

thumb

thumb

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:

thumb

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.


thumb

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.


thumb

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


thumb

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!


thumb


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.

Başarısız bir şekilde kurulursa veya manuel olarak kurmayı düşünüyorsanız, bilgisayarın aygıt yöneticisini açın. Bilgisayar ----- Özellikler ----- Aygıt Yöneticisi'ne sağ tıklayın.
 


thumb

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.


thumb

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:


thumb

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.(thumb


"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)


thumb


Cihaz yöneticisini açın, sarı ünlem işaretinin kaybolduğunu göreceğiz. CP2102 sürücüsü başarıyla kuruldu.
thumb

thumb

Arduino IDE Setting

Click0486-12.png icon,open Arduino IDE.
0085=14.png

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)
0085=15.png


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)


0085=16.png

0085=17.png

Programı panele yüklemeden önce, Arduino IDE araç çubuğundaki her bir sembolün işlevini gösterelim.

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.



İlk programınızı başlatın

Örnek seçmek için dosyayı açın, aşağıda gösterildiği gibi TEMEL'den BLINK'i seçin:


048610png.png


048611png.png

Set panosu ve COM portu, ilgili kart ve COM portu IDE'nin sağ alt tarafında gösterilir.


048612png.png

Click 0486-20.png programı derlemeye başlamak için hataları kontrol edin.


048613png.png

Click 0486-23.pngprogramı yüklemek için, başarıyla yükleyin.
048614png.png

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:


0085--200.png


Adım 2: Arduino'nun kütüphane dosyası olan kütüphaneler klasörünü bulmak için buraya girin.


0085--201.png

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:



0085--203.png

0085--204.png

0085--205.png

You just need to replicate and paste 0085--206.png into the libraries folder of Arduino IDE.

Home smart kitaplığı aşağıda gösterildiği gibi başarıyla kurulmuştur:
0085--207.png

Projeler

 


thumb

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:


thumb

Ö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

Ekipman:
thumb

Sensör kalkanı


thumb

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.

Pimler Açıklama
thumb

Bağlantı şeması:

Kablonun yanında, LED modülünü kalkanın D13'ü ile bağlayın.

thumb
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);
}

 Yorumlara göre, yazarın D13 pin modunu setup () fonksiyonunda dijital çıkış olarak tanımladığını göreceğiz. Kurulum (), Arduino'nun temel işlevidir. Program çalışırken, genellikle tanım pimi olarak, değişkenleri tanımlar ve sağlar.

 
// 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 (), Arduino'nun gerekli işlevidir, "setup ()" bir kez çalıştırıldıktan sonra her zaman çalışabilir ve döngü yapabilir
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

1 sn gecikme, LED yanar - 1 sn devam edin - LED kapalı - 1 sn kalın, işlemi yineleyin. LED 1 saniyelik aralıklarla yanıp söner. Ya LED'in hızla yanıp sönmesini istiyorsanız? Sadece gecikme bloğunun değerini değiştirmeniz gerekir. Gecikme değerinin düşürülmesi, beklediğiniz sürenin kısaldığı, yani hızlı yanıp söndüğü anlamına gelir. Tersine, LED'in yavaşça yanıp sönmesini sağlayabilirsiniz.


thumb

Proje 2: Solunum Işığı


thumb

Açıklama


thumb

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


thumb


Bağlantı şeması:


thumb

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


thumb

Kod analizi

Bazı ifadeleri tekrar etmemiz gerektiğinde, ifade formatı için aşağıdaki gibi "for” ifadesi kullanmamız gerekir:



thumb


"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){
       ...
}
İki "for" ifadesi değeri 0'dan 255'e yükseltir, sonra 255'ten 0'a düşer, sonra 255'e çıkar, .... sonsuz döngü
"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.

thumb

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.

thumb

 

Proje 3: Pasif Buzzer


Açıklama


thumb

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.

Ekipman
thumb

Bağlantı şeması:


thumb

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:


thumb

thumb

thumb

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


thumb

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?


thumb

 

Proje 4 : Düğme Modülüyle LED'i Kontrol Etme

Açıklama:


thumb

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.


Ekipman
thumb

Bağlantı şeması:


thumb

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.


thumb

Proje 5 : 1-kanallı Röle Modülü

Açıklama


thumb

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


thumb

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 :


thumb

Bağlantı şeması:


thumb

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);
}
//
 
Test Sonucu : Kablolayın, açın ve test kodunu yükleyin. Röle 0,5 sn için bağlanır ("NO" açık, NC kapalı), ardından 0,5 sn için bağlantısı kesildi (NC açık, NO kapalı) ve dönüşümlü olarak. Röle bağlandığında beyaz LED yanacak, tersine beyaz LED sönecektir.


thumb

Proje 6 : Fotosel Sensör

Açıklama

thumb

Fotosel sensörü (foto direnç), bir yarı iletkenin fotoelektrik etkisiyle yapılan bir dirençtir. Ortam ışığına çok duyarlıdır, bu nedenle direnç değeri farklı ışık yoğunluğuna göre değişir. Bir devre tasarlamak ve bir foto direnç sensör modülü oluşturmak için özelliklerini kullanıyoruz. Modülün sinyal ucu mikrodenetleyicinin analog portuna bağlanır. Işık yoğunluğu arttığında direnç azalır ve analog portun voltajı yükselir yani mikrodenetleyicinin analog değeri de yükselir. Aksi takdirde ışık yoğunluğu azaldığında direnç artar ve analog portun voltajı düşer. Yani mikrodenetleyicinin analog değeri küçülür. Bu nedenle, foto direnç sensör modülünü karşılık gelen analog değeri okumak ve ortamdaki ışık yoğunluğunu algılamak için kullanabiliriz. Genellikle ışık ölçümü, kontrolü ve dönüşümü, ışık kontrol devresine de uygulanır.


Özellikler :

    Çalışma gerilimi: 3.3V-5V (DC)
    Arayüz: 3PIN arayüzü
    Çıkış sinyali: analog sinyal
    Ağırlık: 2,3 g

Ekipman:


thumb

Bağlantı şeması:


thumb


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


thumb

Proje 7 : Motor Servo Açısının Ayarlanması

Açıklama


thumb

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.


thumb

 
Arduino ile bir servo motoru kontrol etmenin iki yolu vardır. Birincisi, PWM sinyalini simüle etmek için farklı görev döngüsüne sahip kare dalga üretmek için Arduino'nun ortak bir dijital sensör portunu kullanmak ve bu sinyali motorun konumunu kontrol etmek için kullanmaktır. Başka bir yol da motoru kontrol etmek için Arduino'nun Servo fonksiyonunu doğrudan kullanmaktır. Bu şekilde program daha kolay olacaktır ancak sadece iki kontaklı motoru kontrol edebilir çünkü servo işlevi için sadece dijital pin 9 ve 10 kullanılabilir. Arduino sürücü kapasitesi sınırlıdır. Yani birden fazla motoru kontrol etmeniz gerekiyorsa, harici güce ihtiyacınız olacaktır.


Ö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ı :

thumb


Bağlantı şeması:


thumb

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  // Servo function library
Servo myservo;
int pos = 0; // Start angle of servo
void setup ()
{
myservo.attach (9); // Define the position of the servo on D9
}
void loop ()
{
for(pos = 0; pos < 180; pos += 1)// angle from 0 to 180 degrees
{
myservo.write (pos); // The servo angle is pos
delay (15); // Delay 15ms
}
for(pos = 180; pos>=1; pos-=1) // Angle from 180 to 0 degrees
{
myservo.write (pos); // The angle of the servo is pos
delay (15); // Delay 15ms
}
}
//


 

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


thumb

Proje 8 : Fan Modülü

Açıklama


thumb

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:
Blog Etiketleri :
IdeaSoft® | E-Ticaret paketleri ile hazırlanmıştır.