- Mesajlar
- 545
Bir analog sinyalim var. 10 ölçüm yapıp ortalamasını yazıyorum seri porta. Fakat ilk değerden sonraki değerler bozularak gidiyor. Hatanın kaynağı nedir?
Kod:
#include <AvrI2c_Greiman.h>
#include <LiquidCrystal_I2C_AvrI2C.h>
#define motor 7
LiquidCrystal_I2C_AvrI2C lcd(0x27, 16, 2);
const int GSR=A0;
int sensorDegeri=0;
int gsr_ortalama=0;
int sayac=1;
int toplam=0;
void setup(){
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(A0, INPUT);
lcd.begin();
lcd.print(":Monitoru:");
Serial.print("Sira No\t");
Serial.print("\t");
Serial.println("Deger\t");
}
void loop(){
Serial.print(sayac);
Serial.print("\t\t");
for(int i=0;i<10;i++) //10 ölçüm yapılıp ortalaması alınıyor
{
sensorDegeri=analogRead(GSR);
toplam += sensorDegeri;
delay(5);
}
gsr_ortalama = toplam/10;
Serial.println(gsr_ortalama);
lcd.setCursor(0, 1);
lcd.print("Sensor Degeri:");
lcd.setCursor(12, 1);
lcd.print(gsr_ortalama);
if (gsr_ortalama<100)
{
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
lcd.setCursor(0, 1);
lcd.print("Okunan Deger:");
lcd.setCursor(13, 1);
lcd.print(gsr_ortalama);
}
else
{
digitalWrite(13,LOW);
digitalWrite(12,LOW);
digitalWrite(11,LOW);
}
sayac++;
}