Hemen cevap vereyim, EVET! Tabii ki yapabiliriz 🙂 Üstelik kolay ve ucuz^^ bir proje olur bizim için. Efendim bu videoda, çocukluğumun süper kahramanı olan uğruna telefon faturaları kabarttığım ve bu yüzden ailemden azar yediğim HUGO’nun ev telefonları ile nasıl kontrol edildiğini inceliyor, sonra da aynı metotla çalışan basit bir devresini yapıyoruz.

İyi seyirler 🙂

Eğer siz de aynı projeyi yapmak isterseniz bu yazıyı okumaya devam edebilirsiniz. Kolay gelsin 🙂


MALZEMELER

Bu projeyi yapmak için gerekli olan malzemeler şöyle:

%5 indirim kuponu: LRTDTMF5
(08.12.2021’e kadar Robo90 sitesinde kullanabilirsiniz.)

  1. Leonardo / Pro Micro
  2. MT8870 DTMF modülü
  3. Breadboard
  4. Jumper Kablolar
  5. AUX Kablosu
  6. Micro USB Kablosu
  7. DTMF çıkışı/girişi destekleyen bir cep telefonu

Tüm malzemeleri hazırladıktan sonra aşağıdaki devre şeması ve kodu kullanarak projeyi sizde gerçekleştirebilirsiniz.

Eğer ilk Arduino projeniz bu proje ise Arduino Nasıl İndirilir konusuna bir göz atın.

DEVRE ŞEMASI

Lezzetli Robot Tarifleri'nin Hugo nasıl çalışıyor? Evde yapabilir miyiz? isimli youtube'da yayınlanan proje videosunun devre şeması.

KODUN İNCELENMESİ

İlk olarak kütüphanelerimizi ve çalışmaları için gerekli kodları yazıyoruz.

 #define stD_PIN  8   // stD Port, 
#define D0_PIN   4   // Binary Data Port 0
#define D1_PIN   5   // Binary Data Port 1
#define D2_PIN   6   // Binary Data Port 2
#define D3_PIN   7   // Binary Data Port 3

byte stD_state;

#include <Keyboard.h>

void setup()
{
  
  //Serial.begin(9600);

 
  pinMode(stD_PIN, INPUT);
  pinMode(D0_PIN, INPUT);
  pinMode(D1_PIN, INPUT);
  pinMode(D2_PIN, INPUT);
  pinMode(D3_PIN, INPUT);

  Keyboard.begin(); 

}

void loop()
{
  
  stD_state = digitalRead(stD_PIN);

  if (stD_state == 1)
  {
    //Serial.print("Key : ");
    char key = read_code();
    //Serial.println(key); 
    delay(10);          

    if (key == '2')
    {
      Keyboard.press(KEY_UP_ARROW);
      delay(10);
      Keyboard.releaseAll();
    }
    else if (key == '4')
    {
      Keyboard.press(KEY_LEFT_ARROW);
      delay(10);
      Keyboard.releaseAll();
    }
    else if (key == '6')
    {
      Keyboard.press(KEY_RIGHT_ARROW);
      delay(10);
      Keyboard.releaseAll();
    }
    else if (key == '8')
    {
      Keyboard.press(KEY_UP_ARROW);
      delay(10);
      Keyboard.releaseAll();
    }
  }
}
/*-------------------------------------------------------------*/
byte read_code()
{
  byte data;           
  char key;            

  byte D0, D1, D2, D3; 

  
  D0 = digitalRead(D0_PIN);
  D1 = digitalRead(D1_PIN);
  D2 = digitalRead(D2_PIN);
  D3 = digitalRead(D3_PIN);

  
  bitWrite(data, 0, D0);
  bitWrite(data, 1, D1);
  bitWrite(data, 2, D2);
  bitWrite(data, 3, D3);

 
  //if (data == 1) key = '1';
  if (data == 2) key = '2';
  //if (data == 3) key = '3';
  else if (data == 4) key = '4';
  //if (data == 5) key = '5';
  else if (data == 6) key = '6';
  //if (data == 7) key = '7';
  else if (data == 8) key = '8';
  //if (data == 9) key = '9';

  //if (data == 10) key = '0';
  //if (data == 11) key = '*';
  //if (data == 12) key = '#';

  return key;
}