====== 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: