====== 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 ===== {{anchor:arduino_i2c_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 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 ===== {{anchor:flanke}} 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. {{:wiki:arduino:arduino_elfigyeles.png|Fel- vagy lefutóél figyelés}} 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: