dominoFiber     domiRobot     Forum


Projeler - RF Verici

Bu projemizde DFRobotun üreticisi olduğu APC220 modülünü kullanarak 4x3 tuş takımlı RF verici devresi yapacağız.

Teknoloji:
Tuş takımında 12 adet buton bulunmaktadır. Btonlara basıldığında vericimiz her buton için farklı bir sinyali alıcıya göndermektedir. Bir sonraki projemizde alıcı devreye ait bilgileri paylaşacağız. Devrede kullanılan pilin uzun ömürlü olması amacıyla butonlara basılmadığı sürece devremiz enerji harcamamaktadır. Tuşlara kazara basılıp istemsiz sinyal gönderimlerinin önüne geçebilme amavıyla devreye bir reset butonu konulmuştur. Her tuşa basmadan önce öncelikle reset tuşuna basılmalıdır. Devredeki potansiyometre ile de pwm sinyal göndermek mümkündür.

Amaç:
APC220 kullanarak RF verici yapabilme becerisi kazanmak.

Seviye:
Orta seviye

Hazırlık ve Ön Bilgi:
Uygulamaya geçmeden önce APC220 nedir, ayarları nasıl yapılır. Bunları öğrenmekte fayda var. APC220 hakkında ön bilgi sahibi olmak için forum sitemizdeki APC220 ve arduino başlıklı konuyu incelemenizde fayda olacaktır.

Malzeme listesi:

Fotoğraf 1: Montajı tamamlanmış devre

Şema 1: ISIS devre şeması

Şema 2: ARES baskı devre şeması


Arduino kodları:
Kod: [Seç]
#include <Keypad.h>
#include <Wire.h>
char customKey;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] =
{
 {'1', '2', '3'},
 {'4', '5', '6'},
 {'7', '8', '9'},
 {'*', '0', '#'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3}; 
Keypad customKeypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
int potansiyometre = A3;
int reset_pin=10;
int pot_deger = 0;
int hiz = 127;
int mod_deger = 0;
int manuel_calisma=0;
int pwm_izin=0;


void setup()
{
  Serial.begin(9600);
  pinMode(reset_pin, OUTPUT);
}

void loop()
{
  customKey = customKeypad.getKey();
  if (customKey == '3') {ucbuton();} 
  if (customKey == '6') {altibuton();}
  if (customKey == '*') {yildizbuton();}
  if (customKey == '1') {birbuton();}
  if (customKey == '4') {dortbuton();}
  if (customKey == '2') {ikibuton();}
  if (customKey == '5') {besbuton();}
  if (customKey == '8') {sekizbuton();}
  if (customKey == '#') {karebuton();}
  if (customKey == '7') {yedibuton();}
  if (customKey == '9') {dokuzbuton();}   
  if (customKey == '0') {pwm_izin=1;}
  if (pwm_izin == 1) {pwm_calisma();}
}


void pwm_calisma()
{
      pot_deger = analogRead(potansiyometre);
      hiz= map(pot_deger, 0, 1019, 67, 188);
      delay(10);   
      Serial.write(hiz);
}


void ucbuton() // 249
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(249);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW);   
}

void altibuton()  // 248
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(248);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW);
}

void yildizbuton()  // 252
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(252);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW); 
}

void birbuton() // 242
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(242);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW);   
}

void dortbuton()  // 241
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(241);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW); 
}

void ikibuton()  // 246
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(246);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW); 
}

void besbuton()  // 245
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(245);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW);
}

void sekizbuton() // 244
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(244);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW);
}

void karebuton()  // 243
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(243);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW); 
}

void yedibuton()  // 239
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(239);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW);
}

void dokuzbuton()  // 238
{
  for (int domiRobot = 1; domiRobot <= 20; domiRobot ++)
  {
    Serial.write(238);
    delay (10);
  } 
  digitalWrite(reset_pin, HIGH); delay(1000); Serial.write(240); delay(2000); digitalWrite(reset_pin, LOW); 
}

Projeye ait dosyaları buraya tıklayıp indirebilirsiniz.

Sorularınız ve yorumlarınız için forum sitemizde projeye ait konu açılmıştır.









* APC220 Satın al

Untitled
  • APC220 SATIN ALAPC220 SATIN ALAPC220 SATIN AL