PROJJE
Üye
- Katılım
- 8 Tem 2020
- Mesajlar
- 26
- Puanları
- 1
merhaba ardunio ile iki anolog girişi okuyan ve bu girişleri şartlı calıştırabilecegım bir kod yazmayı tasarlıyorum şöyle calısır
önce A6 VE A7 girişleri tanımlayalım 0-5v = 1023 deger okuyacak
A7 önce okumayacak A6 şartı gercekleştinde A7 okumaya baslıcak mesela A6 0-200mv =45 degerini
aştında A7 ye yönlendirip A7 okumaya devatetmesını ıstıyorum ve tekrar geri 45 degerin altına okuma geldınde okumayacak yani A6 kalıbrasyon yapacak kalıbrasyon gerceklesınce A7 calıstırıp okutmaya devam edecek
bunun do whıle ile denedim fakat sonsuz dongu yaptı geri geldımde okumadı yaptım kodlar asada
unsigned long oldTime = 0; const long interval = 100; unsigned long sensorPin = A7 ; unsigned long sensor = A6 ; unsigned long sensorC =20; int sensorMin = 1023; int sensorMax = 0; int sensorValue = 0; unsigned int MinCAL = 10; unsigned int MaxCAL = 1022; byte calb=4; byte out=5; void setup() { pinMode( sensor , INPUT); // modlar : pinMode(sensorPin, INPUT); pinMode (out,OUTPUT); pinMode (calb,OUTPUT); reads (); } void loop() { unsigned long currentMillis = millis(); if((currentMillis - oldTime) > interval) { oldTime = currentMillis; } sensorC = analogRead(sensor); while (MinCAL>=MaxCAL) { reads(); } digitalWrite (out,1); sensorValue = analogRead(sensorPin); sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255); sensorValue = constrain(sensorValue, 0, 255); { if ( sensorValue>=250 ) {digitalWrite(calb, 1);} else {digitalWrite(calb, 0); delay (10);} } } void reads() { digitalWrite( out, 0); sensorValue = analogRead(sensorPin); if (sensorValue > sensorMax) { sensorMax = sensorValue; } if (sensorValue < sensorMin) { sensorMin = sensorValue; } }
kodlardan iyi anlayan arkadaslardan yardım istıyorum
önce A6 VE A7 girişleri tanımlayalım 0-5v = 1023 deger okuyacak
A7 önce okumayacak A6 şartı gercekleştinde A7 okumaya baslıcak mesela A6 0-200mv =45 degerini
aştında A7 ye yönlendirip A7 okumaya devatetmesını ıstıyorum ve tekrar geri 45 degerin altına okuma geldınde okumayacak yani A6 kalıbrasyon yapacak kalıbrasyon gerceklesınce A7 calıstırıp okutmaya devam edecek
bunun do whıle ile denedim fakat sonsuz dongu yaptı geri geldımde okumadı yaptım kodlar asada
unsigned long oldTime = 0; const long interval = 100; unsigned long sensorPin = A7 ; unsigned long sensor = A6 ; unsigned long sensorC =20; int sensorMin = 1023; int sensorMax = 0; int sensorValue = 0; unsigned int MinCAL = 10; unsigned int MaxCAL = 1022; byte calb=4; byte out=5; void setup() { pinMode( sensor , INPUT); // modlar : pinMode(sensorPin, INPUT); pinMode (out,OUTPUT); pinMode (calb,OUTPUT); reads (); } void loop() { unsigned long currentMillis = millis(); if((currentMillis - oldTime) > interval) { oldTime = currentMillis; } sensorC = analogRead(sensor); while (MinCAL>=MaxCAL) { reads(); } digitalWrite (out,1); sensorValue = analogRead(sensorPin); sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255); sensorValue = constrain(sensorValue, 0, 255); { if ( sensorValue>=250 ) {digitalWrite(calb, 1);} else {digitalWrite(calb, 0); delay (10);} } } void reads() { digitalWrite( out, 0); sensorValue = analogRead(sensorPin); if (sensorValue > sensorMax) { sensorMax = sensorValue; } if (sensorValue < sensorMin) { sensorMin = sensorValue; } }
Kod:
unsigned long oldTime = 0;
const long interval = 1000;
unsigned long sensorPin = A7 ;
unsigned long sensor = A6 ;
unsigned long sensorC =20;
int sensorMin = 1023;
int sensorMax = 0;
int sensorValue = 0;
unsigned int MinCAL = 10;
unsigned int MaxCAL = 1022;
byte calb=4;
byte out=5;
void setup()
{
pinMode( sensor , INPUT); // modlar :
pinMode(sensorPin, INPUT);
pinMode (out,OUTPUT);
pinMode (calb,OUTPUT);
reads ();
}
void loop()
{
unsigned long currentMillis = millis();
if((currentMillis - oldTime) > interval)
{
oldTime = currentMillis; }
sensorC = analogRead(sensor);
while (MinCAL>=MaxCAL) { reads(); }
digitalWrite (out,1);
sensorValue = analogRead(sensorPin);
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);
sensorValue = constrain(sensorValue, 0, 255);
{ if ( sensorValue>=250 )
{digitalWrite(calb, 1);}
else
{digitalWrite(calb, 0);
delay (10);}
} }
void reads() {
digitalWrite( out, 0);
sensorValue = analogRead(sensorPin);
if (sensorValue > sensorMax) {
sensorMax = sensorValue; }
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
Son düzenleme: