Ardunio Kullanarak Soru Çözümleme

Ekli dosyayı görüntüle 73793
Kod:
int pot_pin = A0; //Potansiyometreyi A0 pinine tanımlıyoruz
int ileri_pin = 5;
int geri_pin = 3;
int pwm_pin = 9;

// DEGISKENLER
int pot_deger = 0;
int hiz = 0;
int voltaj = 0;

void setup()
{
  pinMode(pot_pin, INPUT);
  pinMode(ileri_pin, OUTPUT);
  pinMode(geri_pin, OUTPUT);
  pinMode(pwm_pin, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  pot_konumunu_oku_degerlendir();
}

void pot_konumunu_oku_degerlendir()
{
  pot_deger = analogRead(pot_pin);
  voltaj = map(pot_deger, 0, 1023, 0, 5000);
  Serial.print(" Voltaj: "); Serial.print(voltaj); Serial.print(" mV ");
  if(pot_deger < 10) {hiz = 180; ileri_git(); Serial.print(" iLERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 10 && pot_deger < 102) {hiz = 195; ileri_git(); Serial.print(" iLERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 102 && pot_deger < 207) {hiz = 210; ileri_git(); Serial.print(" iLERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 207 && pot_deger < 307) {hiz = 225; ileri_git(); Serial.print(" iLERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 307 && pot_deger < 409) {hiz = 240; ileri_git(); Serial.print(" iLERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 409 && pot_deger < 500) {hiz = 255; ileri_git(); Serial.print(" iLERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 500 && pot_deger < 524) {hiz = 0; dur(); Serial.print(" HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 524 && pot_deger < 614) {hiz = 180; geri_git(); Serial.print(" GERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 614 && pot_deger < 716) {hiz = 195; geri_git(); Serial.print(" GERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 716 && pot_deger < 818) {hiz = 210; geri_git(); Serial.print(" GERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 818 && pot_deger < 920) {hiz = 225; geri_git(); Serial.print(" GERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 920 && pot_deger < 1013) {hiz = 240; geri_git(); Serial.print(" GERi HIZ: "); Serial.println(hiz);}
  if(pot_deger >= 1013) {hiz = 255; geri_git(); Serial.print(" GERi HIZ: "); Serial.println(hiz);}
}

void ileri_git()
{
  digitalWrite(ileri_pin, HIGH);
  digitalWrite(geri_pin, LOW);
  analogWrite(pwm_pin, hiz);
}

void geri_git()
{
  digitalWrite(ileri_pin, LOW);
  digitalWrite(geri_pin, HIGH);
  analogWrite(pwm_pin, hiz);
}

void dur()
{
  digitalWrite(ileri_pin, LOW);
  digitalWrite(geri_pin, LOW);
  digitalWrite(pwm_pin, LOW);
}

Bu da röleli ve mosfetli tasarım. Röleler ileri ya da geri yön için motora yol verir. Mosfet ise arduinodan gelen pwm sinyaline göre ile motor hızını ayarlar. Daha önce verdiğim devreden daha sağlıklı çalışır. Diğerinde 5 Volt motor kullanmak gerek. Bunda farklı voltajlarda çalışan motorları kullanabilirsin.
hocam bu benim sorunun cevabımı yoksa siz mi programladınız?
 

Forum istatistikleri

Konular
129,903
Mesajlar
931,173
Kullanıcılar
452,788
Son üye
erisik

Çevrimiçi üyeler

Geri
Üst