micro:bit - tuen lisääminen ArduinoCC:hen (ensimmäinen vaihe) |
micro:bit - tuen lisääminen ArduinoCC:hen (toinen vaihe) |
const int COL1 = 3;
const int LED = 26;
const int buttonA = 5; // the number of the pushbutton pin
const int buttonB = 11; // the number of the pushbutton pin
void setup() {
pinMode(COL1, OUTPUT);
digitalWrite(COL1, LOW);
pinMode(LED, OUTPUT);
pinMode(buttonA, INPUT);
pinMode(buttonB, INPUT);
}
void loop() {
if (! digitalRead(buttonA)) {
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
} else if (! digitalRead(buttonB)) {
digitalWrite(LED, LOW);
} else {
digitalWrite(LED, HIGH);
}
delay(10);
}
Koska ledi näytön 25 lediä ohjataan 12 pinnillä oman logiikkansa mukaisesti (ledit multipleksattu, katso lisätietoa), sen käyttäminen ilman apukirjastoa on hieman sekavaa ja työlästä. Onneksi näytön ohjaamiseen on tarjolla kirjasto ja sen asentaminen onnistuu yhtä vaivattomasti kuin edellinenkin laajennos. Lataa github:ista seuraava zip-tietosto: https://github.com/ht-deko/microbit_Screen/archive/master.zip ja avaa valikosta Sketsi -> Sisällytä kirjasto -> Tuo .ZIP kirjasto.
Kirjaston asentaminen ArduinoCC:hen |
#include <microbit_Screen.h>
Tämän kirjaston avulla ledinäytölle saa vaivattomasti tekstiä, esimerkkinä se kuuluisa "Hello World!":
#include <microbit_Screen.h>
void setup() {
SCREEN.begin();
}
void loop() {
SCREEN.showString("Hello,World!");
}
Vielä täytyy testata miten sen potentiometrillä ohjattavan RGB:n ledin ja summerin koodi oikein ArduinoCC:llä taittuisi... ja eihän se sitten lopulta toiminut. tone - funktiota ei löytynyt micro:bit:ille ja muutenkin koodin toiminta "pätki" eli ledi ei reagoinut reaaliajassa potentiometrin pyöritykseen kuten mbed:in kanssa. 1-0 mbed:ille ja 0-0 summerin käytössä :-)
Tässä kuitenkin koodi:
#include <microbit_Screen.h>
const int POTIKKA = 0;
const int SUMMERI = 1;
const int RGB_R = 8;
const int RGB_B = 3;
const int RGB_G = 16;
void setup() {
SCREEN.begin();
pinMode(RGB_R, OUTPUT);
pinMode(RGB_B, OUTPUT);
pinMode(RGB_G, OUTPUT);
pinMode(SUMMERI, OUTPUT);
pinMode(POTIKKA, INPUT);
}
void loop() {
int sensorvalue = analogRead(POTIKKA); // P1: 0 - 1024
SCREEN.showString(String(sensorvalue));
// tone(SUMMERI, sensorvalue);
if(sensorvalue <= 340){
digitalWrite(RGB_R, HIGH);
digitalWrite(RGB_B, LOW);
digitalWrite(RGB_G, LOW);
} else if(sensorvalue > 340 && sensorvalue <=680){
digitalWrite(RGB_R, LOW);
digitalWrite(RGB_B, HIGH);
digitalWrite(RGB_G, LOW);
} else {
digitalWrite(RGB_R, LOW);
digitalWrite(RGB_B, LOW);
digitalWrite(RGB_G, HIGH);
}
delay(10);
}
Testikytkentä: potentiometri, RGB-ledi, summeri ja ledinäyttö |
Ei kommentteja:
Lähetä kommentti