A 4 lábú verziónál (csak I2C) valóban nincs is reset láb. A 7 lábúnál van még RES, D/C és CS.
A resetre külön írta az eladó, hogy induláskor legalább 200msec-re legyen L, majd H. (Ez teljesül is az arduino resetjével.) D/C és CS legyen L, R3-at átforrasztani R1 helyére. Ez utóbbi rendben is van.
I2C bekötés: táp (GND/+5), SDA, SCL, slussz. A reset más felálláshoz kellhet, de Arduino környezetben ez sokkal több problémát tud okozni kezdő szinten, mint amennyit megold.
Számomra nem egészen világos a feladat. Az kell, hogy akkor és csak akkor lehessen változtatni a led fényerejét, ha közben nyomod a gombot? Mert erre nem a potméter a megfelelő megoldás, hanem a rotary encoder, és teljesen más koncepción alapul a dolog.
Meg lehet oldani potméterrel is, de van hátránya (ha elállítod úgy, hogy nem nyomod a gombot, akkor a következő gombnyomásnál galibák adódhatnak a fényerővel). Ezt speciális alkatrészekkel és elég kompex programozással meg lehet ugyan oldani, de nem egyszerű feladat.
Ez egy elég jó megoldás lenne, feltéve, hogy a lednek csak akkor kellene világítania, amikor a gombot nyomjuk. De úgy lett, hogy 1. gombnyomás: led be. A 2.-tól n-1-dik gombnyomásnál ha a potmétert tekerem, a fényerő változik. 3. n-edik gombnyomásnál kikapcsol.
Vettem egy 128*64-es OLED kijelzőt SSD1306 vezérlővel. 7 kivezetéses, elvileg tud I2C-t és 2 féle SPI-t (a BS0, BS1 lábakra adva 0-t vagy 1-et). Alapból SPI-re volt állítva. A leírás szerint I2C-nél az R3-at át kell forrasztani az R1 helyre, ekkor BS1=1, BS0=0). A DS és D/C lábak 0-án. RST rákötve az Arduino Nano resetére.
Azonban a kijelző semmilyen teszt programra nem jelez. AZ I2C scanner sem látja.
Használt már valaki ilyen 7 lábút? (Az előző sorozat 4 kivezetéssel csak I2C-t tudott.)
Rossz lehet a kijelző, vagy én nem használom jól ?
>Pontosan mi nem jó? Mit szeretnél, és mi történik helyette?
A következőt szeretném : nyomógomb megnyomása után világít az egy db led, és a led fényerejét egy potival szabályozni lehessen (PWM szabályzás). a nyomógomb újra lenyomása után a led kikapcsol, és ennyi.
Jelenleg, ha nincs megnyomva a nyomógomb, akkor is szabályozható a potival a led fényereje a nyomógombtól függetlenül.
Ha nyomógombot megnyomom, akkor világít a led, de nem reagál a potira.
const byte btnPin = 2; //(konstans) Ide van kotve a nyomogomb const byte ledPin = 10; //(konstans) Ide van kotve a led const int analogInPin = A0; const int analogOutPin = 10; byte btnState = HIGH; //(valtozo) nyomobomb allapota byte btnPreState = HIGH; //(valtozo) nyomobomb elozo allapota byte ledState = LOW; //(valtozo) led allapota int sensorValue = 0; int outputValue = 0;
void setup() { // egyszer fut le (beallitasok)
pinMode(ledPin,OUTPUT); // LED kimenet pinMode(btnPin, INPUT); // Nyomogomb bemenet
}
void loop() // vegtelen ciklus {
btnState = digitalRead(btnPin); //beolvassuk a nyomogomb allapotat
// most feldolgozzuk a nyomogombot // megnezzuk hogy nyomjuk es nyomtuk e, valamint hogy mikor nyomtuk utoljara // millis() belso fuggveny megmutatja az eszkoz futasi idejet
Köszönöm a jótanácsot! De már vagy 3 délútánt rászántam, és nem akar úgy működni, ahogy leírtam. Most kezdten el foglakozni az arduinoval, és még nem látom, még nem értem, hogyan tudom összegyúrni öket jól, ezért kértem a segítséget.
Van három alap mintaprogram az Arduino IDE oktatási anyagában (Button, Fading és AnalogInput). Ezeket kell összegyúrni. Sokkal többet érsz vele, ha rászánod ezt a délutánt (estig meglesz), mintha valaki megírja helyetted 10-15 perc alatt.
Szeretnék segítséget kérni arduino programozáshoz. Egy egyszerű programra lenne szükségem, de sehol nem találok ilyet.
A következő lenne : A nyomógombbal bekapcsoljuk a ledet. Amikor világít az 1 db led, akkor 1db potméterrel szabályozzuk a fény erejét( PWM). És amikor a nyomógombbot újra nyomjuk, akkor a led kikapcsol.