Arduino szoftvermegoldások / példaprogramok
Új könyvtár telepítése/újratelepítése
Ha az újratelepítésnél az alábbi probléma lép fel:
Eine Bibliothek namens Arduino-LiquidCrystal-I2C-library-master ist bereits vorhanden
Ezen a néven Arduino-LiquidCrystal-I2C-library-master már létezik egy könyvtár
Akkor a Arduino lib könyvtárból először törölni kell a régit:
C:\Users\Felhasználónév\Documents\Arduino\libraries
Analóg bemenet tesztelése
int sensorPin = A0; int sensorValue = 0; int ledPin = 13; // select the pin for the LED void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); while (!Serial) ; // wait for serial delay(200); Serial.println("Read Analog Test by OB121.com"); Serial.println("-------------------"); } void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); Serial.println(sensorValue); delay(1000); }
I²C scanner
Ez a szkennerprogram az Arduino-ra kapcsolt és azzal kommunikálni képes I²C egységek címeinek a feltárására alkalmas.
A szkennelést nyilván úgy érdemes végrehajtani, hogy szépen sorban, egyik I²C résztvevőt a másik után a buszra kapcsolunk. Így a címkonfliktusok is viszonylag egyszerűen kiszűrhetők. A szerial képernyőt se feledjük el 115.200-ra állítani az IDE-n.
// I2C Scanner // Written by Nick Gammon // Date: 20th April 2011 #include <Wire.h> void setup() { Serial.begin (115200); // Leonardo: wait for serial port to connect while (!Serial) { } Serial.println (); Serial.println ("I2C scanner. Scanning ..."); byte count = 0; Wire.begin(); for (byte i = 8; i < 120; i++) { Wire.beginTransmission (i); if (Wire.endTransmission () == 0) { Serial.print ("Found address: "); Serial.print (i, DEC); Serial.print (" (0x"); Serial.print (i, HEX); Serial.println (")"); count++; delay (1); // maybe unneeded? } // end of good response } // end of for loop Serial.println ("Done."); Serial.print ("Found "); Serial.print (count, DEC); Serial.println (" device(s)."); } // end of setup void loop() {}
Az eredmény valami ilyesmi lesz, ha minden jól megy, és valóban csatlakozik a résztvevő a buszra:
I2C scanner. Scanning ... Found address: 39 (0x27) Done. Found 1 device(s).
Fel- vagy lefutóél figyelés
A németben a technikát Flankenauswertung névvel illetik, gyakran magyarul is megjelenik a flankézés kifejezés az élfigyelés helyett. Gyakorlatilag arról van szó, hogy a nyomógomb lenyomása vagy elengedése nincs szinkronban a program ciklusidejével, ezért ennek az állapotváltozását külön változóval rögzíteni kell.
Ha csak a bemenet értékét olvassuk, és ez alapján próbálunk egy számlálót léptetni, az fog történni, hogy a nyomógomb lenyomása alatt elszalad a számláló, mivel minden ciklikus programlefutás esetén látni fogja a jelet a bemeneten, azaz számlálni fog. Ha minden lenyomás után akarjuk csak a számlálást, az alábbi programmal érdemes próbálkozni: