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
430
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
753
Puanları
248
Konum
Trabzon
analog okumaya ve and kullanmaya ne gerek var ki uzamış kodlama.
 
Konu Sah
H

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
430
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);
}
 

Sponsor Bağlantı

Forum istatistikleri

Konular
105,990
Mesajlar
746,642
Kullanıcılar
393,895
Son üye
frigos

Yeni konular

Üst