Delay komutu kullanmadan Arduino yardım
  • Merhaba Arkadaşlar, Bir projemde kendi tasarladığım elektronik devre ile uln2003 entegresi sayesinde dijital pinden aldığım 5v değerini 12v değerine yükselterek büyük bir servo motoru kontrol etmekteyim. Yapmak istediğim ise c# ile örnek 1 değerini gönderdiğimde motor 20 adım atmasını yapmak istiyorum fakat takıldığım nokta gelen 1 değeri ile for yapısı içine giriyorum ve pinleri 30 kez aç kapa diyorum delay düresi 1ms sonra for dan çıktıktan sonra tekrar dışarıdan komut gelmesini beklemesini istiyorum yani tekrardan 20 değeri gelirse işlem yapmasın farklı değer beklesin gibi umarım anlatabilmişimdir. Şimdiden Teşekkürler Örnek int deger = 12; int pot = 0; int val; void setup() { Serial.begin(9600); pinMode(12,OUTPUT); digitalWrite(deger,LOW); } void loop() { val=analogRead(pot); val = map (val,0 ,1023,0,200); if (val > 20) { for(int i=0; i<30; i++) { digitalWrite(deger,HIGH); delay(1); digitalWrite(deger,LOW); delay(1); } digitalWrite(deger,LOW); } Serial.println(val);
  • last_val diye bir değişkende son geleni tut, for içine girmeden önce last_val ile val değerini karşılaştır aynı değilse for işlemini yap.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.