2-tråds LCD gränssnitt för Arduino eller Attiny (uppdaterad juni 2016) (1 / 2 steg)
Steg 1: 2-tråds LCD för en Attiny85
Om det finns ett chip som kommer att gynnas behöver endast 2 stift för LCD-skärmen, är det den 8-pin Attiny85/45/25. Med stift reserveras för strömförsörjning och Återställ, finns det faktiskt bara 5 stift kvar att använda. och om det är möjligt att genomföra en I2C-protokollet i den kretsen, använda ett skiftregister är förmodligen lättare.
I sin mest grundläggande inställningen behöver Attiny85 bara en pull-up resistor.
Använda Attiny med Arduino IDE måste du installera en attiny kärna. Jag antar att det är väl känt att de flesta människor arbetar med en attiny. Dock inte alla kärnor är lika och vissa kommer att ge dig felmeddelanden när du använder vissa bibliotek eller funktioner. 'Print.h' åsidosättningen är känd när du använder print uttalanden eller libaries på attiny. Men det är lätt att rätta till i filerna print.h och print.cpp men chansen är då dyker ett fel upp i en annan fil som hardwareserial.h.
Det är lättare att använda en kärna som är känd att fungera. Attiny corefrom David Mellis verk i denna inställning.
Ett program skulle se ut så här:
#include < LiquidCrystal_SR.h >
LiquidCrystal_SR lcd(0,2,TWO_WIRE);
// | |
// | \--Klocka Pin
\---Data/aktivera Pin < br > void setup() {
LCD.BEGIN(16,2); initiera lcd
LCD.Home (); Gå hem
LCD.Print ("LCD med 2 sladdar");
lcd.setCursor (0, 1); gå till position
LCD.Print ("på Attiny85");
} < br > void loop() {
}
På något sätt vill jag hävda mitt arbete i detta är original: kärnan är inte min, biblioteket är inte min och idén att använda en 164 skiftregister är inte min. Jag dra bara ihop här i ett praktiskt fungerande exempel.
Bara en kommentar. Althoigh jag bort "br" linebreak HTML-koder ett dussin gånger från programmet notering, de kommer tillbaka. Så om du kopierar detta program se till att ersätter du eventuella br koder (de mellan "fisk krokar") av en linebreak
OBS
Jag märkte några problem som kan uppstå om du använder den I2C porten på Attiny85 via TinyWireM biblioteket eftersom jag inte kunde läsa en BMP180 sensor. Jag har inte preciserat orsaken ännu. Om du implementerar en I2C-protokollet på ditt Attin85, är det dock inte mycket anledning att använda SR ryggsäck för din LCD längre. Bättre använda I2C sedan