Potansiyometre Okuma (Basit Sensör Deneyi)

Herkese merhaba… Arduino programlmaya yeni başladım. Pot okurken serialmonitor’de sadece potu oynattığımda değer görünsün istiyorum birkaç deneme yaptım ancak tam kararlı çalışmadı.. En son şu kodları denedim kısmen çalıştı. Öneriniz nedir? const int AnalogGirisPini = A0; int sicaklikdizi = {}; int PotDegeri = 0; float GerilimDegeri = 0; void setup() { Serial.begin(9600); } void loop() { etiket1 : int k, i; sicaklikdizi[0] = 0; for (k = 0; k < 1000; k++) { PotDegeri = analogRead(AnalogGirisPini); sicaklikdizi[i] = GerilimDegeri = (PotDegeri / 1023.0) * 5.0; if (sicaklikdizi[i] != sicaklikdizi[i - 1]) { Serial.print(" Sensor Degeri = “); Serial.println(PotDegeri); Serial.print(” Gerilim = "); Serial.println(GerilimDegeri); } else { Serial.println(“m”); } i++; } }

mikrofonlu ses sensörlerinin analog olanları var. onların kodlarına bakın bence. eğer ses şiddeti bir öncekinden % 10 yüksekse led yakan kodlara bakın. işinize yarayacaktır

http://www.youtube.com/watch?v=d5kdLGXYFVY&list=PLSK4a2soCTDbwTo3QZw15IyZWlgJIRhZ0

sorun tam olarak bu değil… sadece farklı bi değer geldiğinde seri monitörde göstersin istiyordum o anki projemde… pek bi çözüm bulamadım ama üzerinde uğraşacağım..

meraba bende arduino programlamaya yeni başladım, int sicaklikdizi = {} sanırım bu sonsuz haneli bir dizi üretiyor? cache i yormamak adına bunu 2 değişkenlede çözebilirdiniz int sıcaklık1, sıcaklık2; sıcaklık1=sizin formülleriniz… if(sıcaklık1!=sıcaklık2) { serial printler… sıcaklık2=sıcaklık1; } bu şekilde for loop unu kurmanıza gerek kalmaz, standart void loop unuzda programı çevirebilirsiniz programınızın stabil çalışmama nedenininde i değişkeninizin hiçbir yerde değer vermeden sicaklikdizi[i] = GerilimDegeri = (PotDegeri / 1023.0) * 5.0; ile giriş yapıyorsunuz diye düşünüyorum, cache de ne varsa i ye onu yapıştırıyor, i yi tanımlarken int i=1; diye tanımlayıp yeniden deneyin.