#include <LiquidCrystal.h>
// Alustetaan LCD näyttö LiquidCrystal kirjaston mukaisesti,
// Pico GP12 -> LCD RegSel pinniin
// Pico GP11 -> LCD Enable pinniin
// Pico GP10-GP7 -> LCD D4-D7 data pinneihin
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
// Jotta voimme tehdä simppelin loopin niin luomme taulukon jossa on etukäteen määritelty
// kursorin sijainti jokaiselle 'o':lle jonka asetamme ja putsamme LCD näytöltä.
int positions[16][2] = {
{0, 0}, {1, 1}, {0, 2}, {1, 3}, {0, 4}, {1, 5}, {0, 6}, {1, 7},
{0, 8}, {1, 9}, {0, 10}, {1, 11}, {0, 12}, {1, 13}, {0, 14}, {1, 15}
};
void setup() {
// Asetetaan LCD:n sarakkeiden ja rivien määrä
lcd.begin(16, 2);
}
void loop() {
// Asetetaan 'o' jokaiseen 'positions' taulukon määrittelemään kohtaan, kun kaikki taulukon
// sijainnit on käyty läpi niin siirrymme seuraavaan for looppiin
for (int i = 0; i < 16; i++) {
lcd.setCursor(positions[i][1], positions[i][0]); // Asetetaan kursorin lcd näytölle
lcd.print("o"); // Asetetaan 'o' kirjain
delay(1000); // Sekunnin viive
}
// Ja tyhjennetään jokainen asetettu 'o' LCD näytöltä identtisellä logiikalla
for (int i = 0; i < 16; i++) {
lcd.setCursor(positions[i][1], positions[i][0]);
lcd.print(" "); // Asetetaan tyhjäa cursorin kohdalle
delay(1000);
}
}