Koda: |
lcd.clear(); lcd.setCursor (0, 0); lcd.print("Ime 1= "); lcd.print(sensor_1, 0); lcd.setCursor (0, 1); lcd.print("Ime 2= "); lcd.print(sensor_2, 0); lcd.setCursor (0, 2); lcd.print("Ime 3= "); lcd.print(sensor_3, 0) delay (2000); lcd.clear(); lcd.setCursor (0, 0); lcd.print("Ime 4= "); lcd.print(sensor_4, 0); lcd.setCursor (0, 1); lcd.print("Ime 5= "); lcd.print(sensor_5, 0); lcd.setCursor (0, 2); lcd.print("Ime 6= "); lcd.print(sensor_6, 0) delay (2000); lcd.clear(); |
borzon je napisal/a: |
.....Mogoče kdo ve ali obstaja kakšen večji LCD za Arduino kot je 20x4. |
Koda: |
unsigned long MiliNovX; unsigned long MiliNovS; unsigned long MiliZdaj; byte NovX; byte NovS; ... Če te moti, da bo ob zagonu programa prvič vseh 6 senzorjev izpisalo 0, v Setupu dodaj NovX = 10; da 3 sekunde ne bo izpisalo ničesar ali pa izvedeš 2., 3., 5. in 6. meritev. void loop() { MiliZdaj = millis(); if(MiliZdaj > MiliNovS) { NovS++; // Sproži meritev novega senzorja in pripravi za ... MiliNovX = MiliZdaj + 1000; // ... naslednjo meritev čez 1 sekundo switch(NovS) { case 1: {izmeri S1; break} case 2: {izmeri S2; break} case 3: {izmeri S3; break} case 4: {izmeri S5; break} case 5: {izmeri S5; break} case 6: {izmeri S6; NovS=0; break} default : {NovS=0} } } if(MiliZdaj > MiliNovX) { NovX++; // Sproži nov izpis in pripravi za ... MiliNovX = MiliZdaj + 3000; // ... naslednji izpis čez 3 sekunde if(NovX == 1) { izpiše senzorje 1,2,3 NovX = 2; } if(NovX > 2) // da ne pobegne preko 3 { izpiše senzorje 4,5,6 NovX = 0; } } ... } // void loop() //gornja koda bo izmenoma vsake 3 sekunde prikazovala po 3 senzorje // tudi meritve se lahko izvajajo redkeje in ne vse hkrati // lahko narediš z if ali s case ali kako drugače. |
lojzek je napisal/a: |
...... v prekinitveni rutini gledaš, če je preteklo dovolj časa (omenjene 3s) |