Merhaba tinkercard web sitesi üzerinden şöyle bir şey yapmak istiyorum ancak çalışmıyor. Ne gibi bir yanlışım var bilen var mıdır?
Şartlar şunlar.
- Devrenizde 1 adet Arduino, 2 adet neopixel strip 6, 1 adet temperature sensor, 1 adet soil moisture sensor ve 1 adet LCD (ı2C) olacaktır.
- Birleştirdiğiniz 2 adet neopixel şeritten soldan sağa 3 boşluk bırakarak yürüyen ışık efekti yapılacaktır.
- Eğer sıcaklık 0 dereceden küçük ise şerit mavi ışık; 0 ile 40 derece arasında ise yeşil ışık; 40 dereceden fazla ise kırmızı ışık yakacaktır.
- Nem sensörü değeri 600'den büyük olması durumunda havanın yağmurlu olduğu varsayılarak şerit ışık vermeyecek, değil ise çalışacaktır.
- LCD havanın açık veya yağmurlu olduğu bilgisini gösterecektir.
Yazdığım kod:
#İnclude <Wire.h>
#İnclude <Adafruit_GFX.h>
#İnclude <Adafruit_SSD1306.h>
#İnclude <Adafruit_NeoPixel.h>
#Define oled_reset 4
Adafruit_ssd1306 display(oled_reset);
#Define neopıxel_pın 6
#Define num_pıxels 12.
Adafruit_neopixel strip = adafruit_neopixel(num_pıxels, neopıxel_pın, neo_grb + neo_khz800);
#Define temp_sensor_pın A0.
#Define moısture_sensor_pın A1.
Void setup() {
Serial. Begin(9600);
Display. Begin(SSD1306_Swıtchcapvcc, 0x3C);
display.clearDisplay();
Display. Settextcolor(whıte);
Display. Settextsize(1);
Display. Setcursor(0, 0);
strip.begin();
strip.show();
Pinmode(temp_sensor_pın, ınput);
Pinmode(moısture_sensor_pın, ınput);
}
Void loop() {
Float temperature = analogread(temp_sensor_pın) * 0.48875; // ADC değerini gerçek sıcaklığa dönüştürme.
İnt moisture = analogread(moısture_sensor_pın);
İf (temperature < 0) {
Setstripcolor(strip. Color(0, 0, 255));
} Else if (temperature >= 0 && temperature <= 40) {
Setstripcolor(strip. Color(0, 255, 0));
} Else {
Setstripcolor(strip. Color(255, 0, 0));
}
İf (moisture > 600) {
Setstripcolor(strip. Color(0, 0, 0));
Displayhavadurumu("yağmurlu");
} Else {
Displayhavadurumu("açık");
}
}
Void setstripcolor(uint32_t color) {
For (int i = 0; i < num_pıxels; i++) {
Strip. Setpixelcolor(i, color);
strip.show();
Delay(100);
}
}
Void displayhavadurumu(string havadurumu) {
display.clearDisplay();
Display. Setcursor(0, 0);
Display. Println("hava durumu:");
Display. Settextsize(2);
Display. Setcursor(0, 16);
Display. Println(havadurumu);
display.display();
}
-
Screenshot 2023-06-23 094335.png
94,7 KB · Görüntüleme: 37
Son düzenleyen: Moderatör: