Ardunio Kullanarak Soru Çözümleme

  • Konbuyu başlatan Konbuyu başlatan Leodamar
  • Başlangıç tarihi Başlangıç tarihi
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
133,504
Mesajlar
971,933
Kullanıcılar
459,554
Son üye
tarntula_tr

Yeni konular

Geri
Üst