Arduino Mini Pro ile tetiklemeli delay dongusu hk.

hakanbasar

Üye
Katılım
29 Ara 2018
Mesajlar
8
Puanları
1
Yaş
47
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);
 
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);
}
 
analog okumaya ve and kullanmaya ne gerek var ki uzamış kodlama.
 
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: 5
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
128,120
Mesajlar
915,176
Kullanıcılar
449,825
Son üye
yasargokdemir

Yeni konular

Geri
Üst