Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

30 Haziran 2021 Çarşamba

MAX7219 8X8 DOT LCD ile Ses Şiddetine göre Emojiler ve Rastgele Sayı Üretme

MAX7219 Dot Matrix LCD ile Ses Şiddetine Göre Emojiler

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.

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.

  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.

Kod:

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

Dot Matrix Display’de Random Sayı Üretme

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.

Kod:

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

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.