Elektrik Elektronik Teknolojisi Alanı Temrinleri

 
Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

İletileri Göster

Bu özellik size üyenin attığı tüm iletileri gösterme olanağı sağlayacaktır . Not sadece size izin verilen bölümlerdeki iletilerini görebilirsiniz


Mesajlar - uzunberat

Sayfa: [1]
1


Kod: [Seç]
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ı kullanılabilir.
Bu iletiye teşekkür edenler: uzunberat

2
Analog A0 pininden bir potansiyometre üzerindeki gerilim değerleri okunacak ve motor hız kontrolü yapılacaktır. Potansiyometre üzerinde okunan değer 0-5V arasında ölçeklendirilmelidir. 0V-2.5V arasında belirli bir yönde dönen motor, 2.5V-5V arasında gerilim değerlerinde tam tersi yönde dönmelidir. Motorunuzun hızı her 0.5V aralıkta biraz daha hızlanmalıdır. (0-0.5V arasında belli bir hızda, 0.5-1V arasında daha hızlı olacak şekilde 2.5V’a kadar hızlanmalıdır. 2.5V’un üzerinde ise diğer dönme yönünde yine aynı gerilim aralığı ile hızı giderek artmalıdır.)



Kod: [Seç]
int pot_pin = A0; //Potansiyometreyi A0 pinine tanımlıyoruz
int ileri_pin = 5;
int geri_pin = 3;

// 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);
  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()
{
  analogWrite(ileri_pin, hiz);
  digitalWrite(geri_pin, LOW);
}

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

void dur()
{
  digitalWrite(ileri_pin, LOW);
  digitalWrite(geri_pin, LOW);
}
Bu iletiye teşekkür edenler: uzunberat

Sayfa: [1]