Arduino Mini Pro ile tetiklemeli delay dongusu hk.

hakanbasar

Üye
Katılım
29 Ara 2018
Mesajlar
8
Puanları
3
Yaş
42
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
429
Puanları
3
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

Uzman Üye
Katılım
27 Eyl 2008
Mesajlar
741
Puanları
248
Konum
Trabzon
analog okumaya ve and kullanmaya ne gerek var ki uzamış kodlama.
 

hakanbasar

Üye
Katılım
29 Ara 2018
Mesajlar
8
Puanları
3
Yaş
42
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

  • 213.5 KB Görüntüleme: 3

tolga264

Üye
Katılım
14 Eki 2008
Mesajlar
429
Puanları
3
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);
}
 

Benzer konular


Sponsor Bağlantı

Forum istatistikleri

Konular
104,582
Mesajlar
735,783
Kullanıcılar
388,971
Son üye
ibrahim14muhterem

Yeni konular

Üst