Navigation |
Arduino - Sketch und Schaltung für I2C-LCD-Display (16 x 2, DFR0063) sowie einem Taster / SchalterNachdem ich mich wegen der anhaltenden Probleme mit der seriellen Ausgabe der Arduino-Boards UNO und Mega 256 auf dem PC auf die Ausgabe auf ein LCD-Display konzentriert habe, habe ich mit den Vorbereitungen für die zukünftige Verwendung begonnen. Als erstes Ergebnis kann ich hier die mit Fritzing erstellte Schaltung und einen Sketch vorlegen: Zweck der Schaltung und des Sketches ist die Ausgabe von Programm-Meldungen auf einem LCD-Display. Verwendet wird hier ein I2C-Display von DFRobot, welches nur 2 Leitungen (neben "+" und "-") benötigt. Das lässt genug Pins frei für die noch anstehenden Ausbauten. Hinweise: Der am Schalter / Taster angebrachte 10 K Widerstand sorgt dafür, dass immer ein definierter Zustand (An / Aus) vorliegt. Sie können gefahrlos diesen Widerstand entfernen, um die Auswirkungen selbst zu erfahren. Die dargestellt rote LED muss nicht angeschlossen werden, da auf PIN 13 der meisten Arduino-Boards dort sowieso eine LED geschaltet ist. Hier die Schaltung:
Und hier der dazugehörige Sketch:
#include <Wire.h>
#include <LiquidCrystal_I2C.h> // DFROBOT DFR0063
/* * * M Y N O T E S * *
*************************************************
- please push the reset-button after connecting the arduino board to usb / voltage
- atm keine deutschen Umlaute möglich
**************************************************
* Button1 circuit:
* pushbutton attached to pin 2 from +5V
* 10K resistor attached to pin 2 from ground (um das Prellen zu unterdrücken,
erfordert aber nachdrückliches "PUSH" des Buttons
**************************************************
*/
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27
// for a 16 chars and 2 line display
int i = 1;
int bt1state = 0; // status of button 1
const int led1pin = 13; // control-LED connected to pin 13
const int bt1pin = 2; // button 1 connected to pin 2
void setup() {
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.clear();
lcd.print("Hello");
pinMode(led1pin, OUTPUT);
delay(500);
lcd.clear();
}
void loop() {
bt1state = digitalRead(bt1pin);
if (bt1state == HIGH) { // button 1 is pressed
lcd.clear(); // clear the LCD display
digitalWrite(led1pin, HIGH); // set LED on PIN 13 on
lcd.print("Button 1 ON");
delay(1000);
} else { // button 1 is NOT pressed
lcd.clear(); // clear the LCD display
digitalWrite(led1pin, LOW); // set LED on PIN 13 off
lcd.print("Button 1 OFF");
delay(1000);
}
}
Dieser Code ist frei verfügbar unter der GNU GPL.
|
Inhalte durchsuchenPartnersitesWetter in OB, D
2012-Feb-23, 07:00
Temp.: 5,5 °C Luftdr.: 1.017,8 hPa Feuchte: 93,0 % Wind: 0,0 m/s Regen der letzten Stunde: 0 mm 24 Stunden: 1 mm mehr... Beliebte InhalteHeute:
Insgesamt: |