Arduino Eğitim Kiti – Tüm Yıl İçin Arduino Müfredatı: Ders 27 Ses Şiddetine Göre Emojiler ve Display Kullanarak Random Sayı Üretme için isterseniz sunu şeklinde alt taraftaki kutucuğu büyüterek takip edebilir, isterseniz de tüm sunu sayfalarının makale haline dönüştürülmüş versiyonu takip edebilirsiniz. İçerikler büyük oranda aynıdır. Sınıf ortamında kolaylık olması açısından sunu şeklinde de sunulmuştur.

Ders İçeriği:

Ses Şiddetine Göre Emojiler, Display Kullanarak Random Sayı Üretme

 

Ders Kazanımları:

  • Ses Şiddetine Göre Emojiler programını yardım almadan başarılı bir şekilde tasarlar.
  • Random Sayı Üretme programını yardım almadan başarılı bir şekilde tasarlar.

Oluşabilecek Hatalar:

Aşağıdaki programları çalıştırırken birtakım hatalarla karşılaşabilirsiniz. Bu hataların kodların yazımında meydana gelen hatalar dışında başka sebeplerle ortaya çıkması muhtemeldir. Bu hatalardan sık karşılaşılanlara aşağıda değinilmiştir.

Kart Seçilmesinden Kaynaklı Hata:

Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru kartın seçilmesi gerekmektedir. Kart seçilmediğinde “Karta yüklenirken bir sorun oluştu.” benzeri bir hata alabilirsiniz.

USB Portun Seçilmesiyle İlgili Hatalar:

Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru portun seçilmesi gerekmektedir. Bu port Arduino Uno’nun bilgisayara bağlandığı usb porttur. Farklı şekilde bilgisayarınızda usb driver yüklenmemiş olabilir. Bu gibi hatalarda “Port bulunamadı.” gibi hatalar almanız muhtemeldir.


Uygulama 1: Ses Şiddetine Göre Dot Matrix’ten Emojiler

 

Kullanılacak Malzemeler:

Bağlantı Şeması:

Bağlantılar şekildeki gibi yapılır.

  1. Arduino üzerindeki 5V pini breadboard üzerinde “+” hatta, GND pini ise breadboard üzerinde “-” hatta bağlanır.
  2. Dot Matrix’in VCC pini “+” hatta, GND pini “-” hatta, DIN 5 nolu dijital pine, CS 4 nolu dijital pine, CLK 3 nolu dijital pine bağlanır.
  3. Ses Sensörü’nün VCC pini “+” hatta, GND pini “-” hatta, OUT pini 9 nolu dijital pine bağlanır.

Kodlar:

Uygulamanın  “.ino” dosyasını (kod dosyasını) ve kütüphanelerini  buradan indirebilirsiniz.

#include "LedControl.h"
int DIN = 5;
int CS = 4;
int CLK = 3;
int Sound_Out=9;
byte gulumseyen[8]= {0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C};
byte uzgun[8]= {0x3C,0x42,0xA5,0x81,0x99,0xA5,0x42,0x3C};
LedControl lc=LedControl(DIN,CLK,CS,0);
void setup(){
pinMode(Sound_Out,INPUT);
lc.shutdown(0,false); //Max72xx açılır
lc.setIntensity(0,1); // parklaklıhı ayarlar
lc.clearDisplay(0); // ekranı temizler
Serial.begin(9600);
}
void loop(){
if(digitalRead(Sound_Out)==1)
{
printByte(gulumseyen);
Serial.print("Ses yok");
delay(100);
}
else
{
printByte(uzgun);
Serial.print("Ses var");
delay(5000);
}
}
void printByte(byte character [])
{
int i = 0;
for(i=0;i<8;i++)
{
lc.setRow(0,i,character[i]);
}
}

  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulamada ses sensöründen ses algılandığında Dot Matrix’te üzgün surat ifadesi, ses algılanmadığında ise gülen surat ifadesi görülecektir.
  • Aynı zamanda serial ekranda ses algılandığında “ses var”, algılanmadığında ise “ses yok” uyarısı alacaksınız.

Uygulama 2: Display’de Random Sayı Üretme

 

Kullanılacak Malzemeler:

Bağlantı Şeması:

Bağlantılar şekildeki gibi yapılır.

  1. Arduino üzerindeki GND pini breadboard üzerinde “-” hatta bağlanır.
  2. Butonlar şekildeki gibi breadboarda yerleştirildikten sonra bir bacakları “-” hatta bağlanır.
  3. Boşta kalan bacağı Arduino Uno üzerinde A0’a diğer butonun boşta kalan bacağını ise A1 pinine bağlayın.
  4. 7 segment breadboarda yerleştirildikten sonra alt kısımdaki pinleri ilk pin boşta kalacak şekilde sağdan sola doğru sırasıyla, 7 – breadboard üzerinde herhangi bir yere – 6 – 5 nolu pinlere bağlanır.
  5. Üstteki pinler ise sağda sola doğru 8 ve 9 nolu pinlere bağlanır. Ortadaki pin şekildeki gibi bir önceki breadboard üzerinde herhangi bir yere takılan pinin hizzasına bağlanır. Boşta kalan diğer pinler ise sağdan sola doğru sırasıyla 4 ve 3 nolu pinlere bağlanır.
  6. Herhangi bir yere bağlanan pinlerin hizzasında Arduino’nun 5V pinine bir hat çekilir.
  7. Kodları yüklediğiniz takdirde 7 Segment çalışmaz ise 5V’a çekilen hat , “-” hat ile değiştirilmelidir.

Kodlar:

Uygulamanın  “.ino” dosyasını (kod dosyasını) buradan indirebilirsiniz.

#define resett 15
#define dice 14
char digit[6]={0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
int pin[7]={9,8,7,6,5,4,3}; //displayin bağlantı pinleri
void setup()
{
for(int i=0;i<7;i++)
pinMode(pin[i], OUTPUT);
pinMode(dice, INPUT);
pinMode(resett, INPUT);
digitalWrite(dice, HIGH);
digitalWrite(resett, HIGH);
int temp=0x40;
for(int i=0;i<7;i++)
{
int temp1=temp&0x01;
digitalWrite(pin[i], temp1);
temp=temp>>1;
}
delay(1000);
}
void loop()
{
int temp=rand(); //rastgele seçilen bir sayının temp değiş. atanması
if(digitalRead(dice)==0)
{
int k=temp%6;
temp=digit[k];
wait();
for(int i=0;i<7;i++)
{
int temp1=temp&0x01;
digitalWrite(pin[i], temp1);
temp=temp>>1;
}
delay(200);
}
if(digitalRead(resett)==0)
{
temp=0x40;
for(int i=0;i<7;i++)
{
int temp1=temp&0x01;
digitalWrite(pin[i], temp1);
temp=temp>>1;
}
}
}
void wait()
{
for(int m=0;m<10;m++)
{
for(int k=0;k<6;k++)
{
int ch=digit[k];
for(int l=0;l<7;l++)
{
char tem2=ch&0x01;
digitalWrite(pin[l], tem2);
ch=ch>>1;
}
delay(50);
}
}
}

  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulama çalıştığında 7 Segment 0 rakamını gösterecektir.
  • Butonlardan biri resetleme biri sayı üretme butonudur. Bunların hangileri olduğu bağlantıyı nasıl yaptığınıza bağlıdır.
  • Bir butona basınca 7 Segment saymaya başlayacak ve random bir sayıda duracaktır.
  • Diğer butona basınca segment resetlenecektir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz