Arduino Mini Pro ile tetiklemeli delay dongusu hk.

hakanbasar

Üye
Katılım
29 Ara 2018
Mesajlar
8
Puanları
1
Yaş
44
Herkese merhaba ,
Arduino ile amatör olarak uğraşıyorum ve Pro Mini _Atmega328 - 3V ile yapmış olduğum bir projede 1 analog giris ve
2 output ihtiyacım var. Bu kart ile mumkun olabileceğini deney videolarında görmüştüm ve INPUT hariç aşağıdaki programı yazdım.
Input komutlarını düzenleyemedim. Nasıl ekleyebilecegim hakkında bilgisi olan varsa sevinirim.

Input = 2V - 3V arası değişen 1 sn'lik tetik voltajı .
Input tetiklendiğinde ;
Output 1 = HIGH , 2sn delay ve LOW olacak
Output 2 = LOW , 2sn delay ve HIGH olacak
Döngü , INPUT her tetiklendiğinde tekrar edecek.

//////////////////////////////////////
void setup() {
pinMode (2,OUTPUT);
pinMode (3,OUTPUT);
}
void loop() {
digitalWrite (2, HIGH);
digitalWrite (3, LOW);
delay(2000);
digitalWrite (2,LOW);
digitalWrite (3,HIGH);
delay(2000);
 

tolga264

Üye
Katılım
14 Eki 2008
Mesajlar
438
Puanları
1
Input = 2V - 3V arası değişen 1 sn'lik tetik voltajı .
Input tetiklendiğinde ;
Output 1 = HIGH , 2sn delay ve LOW olacak
Output 2 = LOW , 2sn delay ve HIGH olacak
Döngü , INPUT her tetiklendiğinde tekrar edecek.
A3 yerine analog girişin hangisi ise onu yazacaksın
1024 3.3V denk gelir orantı kurarsan 1v 310 ve 2volt 620 denk gelir

//////////////////////////////////////
int analogPin = A3; //
int deger=0;
void setup() {

pinMode (2,OUTPUT);
pinMode (3,OUTPUT);
}
void loop() {
deger=analogRead(analogPin) ;//Analog degerı oku
if(val>=310 && val<=620)
{
digitalWrite (2, HIGH);
digitalWrite (3, LOW);
delay(2000);
digitalWrite (2,LOW);
digitalWrite (3,HIGH);
delay(2000);
}
 

bolubeyi

Profesyonel Üye
Katılım
27 Eyl 2008
Mesajlar
1,250
Puanları
421
Konum
Trabzon
analog okumaya ve and kullanmaya ne gerek var ki uzamış kodlama.
 
Konu Sah

hakanbasar

Üye
Katılım
29 Ara 2018
Mesajlar
8
Puanları
1
Yaş
44
Input = 2V - 3V arası değişen 1 sn'lik tetik voltajı .
Input tetiklendiğinde ;
Output 1 = HIGH , 2sn delay ve LOW olacak
Output 2 = LOW , 2sn delay ve HIGH olacak
Döngü , INPUT her tetiklendiğinde tekrar edecek.
A3 yerine analog girişin hangisi ise onu yazacaksın
1024 3.3V denk gelir orantı kurarsan 1v 310 ve 2volt 620 denk gelir

//////////////////////////////////////
int analogPin = A3; //
int deger=0;
void setup() {

pinMode (2,OUTPUT);
pinMode (3,OUTPUT);
}
void loop() {
deger=analogRead(analogPin) ;//Analog degerı oku
if(val>=310 && val<=620)
{
digitalWrite (2, HIGH);
digitalWrite (3, LOW);
delay(2000);
digitalWrite (2,LOW);
digitalWrite (3,HIGH);
delay(2000);
}

Cevap icin tesekkur ederim . If satırında ekteki hata mesajını veriyor . val ile ilgili sanırım. ne olabilir fikriniz varmı ?
analog okumaya ve and kullanmaya ne gerek var ki uzamış kodlama.
Input sınyalı sabit bir voltaj degil . 2 ile 3 volt arasında değisken . sanırım bu sebeple analog tercih edildi.
 

Ekli dosyalar

  • fffg.png
    fffg.png
    213.5 KB · Görüntüleme: 3

tolga264

Üye
Katılım
14 Eki 2008
Mesajlar
438
Puanları
1
analog gırıstekı gerılım 2V uzerı olunca { } ıcındekı kodları yapacak eger 2v asagı ıstersen 620 daha kucuk yap uzerı ıseternsen daha buyuk yap max 1024 3.3V denk gelır

int analogPin = A3; //
void setup() {

pinMode (2,OUTPUT);
pinMode (3,OUTPUT);
}
void loop() {
if(analogRead(analogPin)>=620)
{
digitalWrite (2, HIGH);
digitalWrite (3, LOW);
delay(2000);
digitalWrite (2,LOW);
digitalWrite (3,HIGH);
delay(2000);
}
 

Forum istatistikleri

Konular
118,071
Mesajlar
832,333
Kullanıcılar
429,425
Son üye
mehmetenes6

Yeni konular

Çevrimiçi üyeler

Üst