- Szoszo94: Xiaomi Mi Router 3G - Padavanra fel!
- Argos: Szeretem az ecetfát
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Magga: PLEX: multimédia az egész lakásban
- sziku69: Szólánc.
- Parci: Milyen mosógépet vegyek?
- gban: Ingyen kellene, de tegnapra
- Kempingezés és sátrazás
- Gurulunk, WAZE?!
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
-
LOGOUT
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
lanszelot
addikt
válasz
lanszelot #20315 üzenetére
Először is nagyon szépen köszönöm a segítséget mindenkinek
Elfelejtem, hogy van nekem egy Arduino Mega 2560, amit a készlethez kaptam
Azal azonnal meg lett a probléma.Digispark nem tudja kezelni a Rotary Encoder-t.
51% memoria használat van, tehát nem az a gond.
Ugyanaz a program Mega-n tökéletesen fut.
Digispark-on a fent említett problémát dobja.
Annyi a Digispark-on a változtatás, hogy a pin-eket módosítom így:#define led 0
#define CLK 2
#define DT 1Itt a program ami Mega-n gond nélkül működik:
/*LED input*/
#define led 13
/*rotary encoder input*/
// Rotary Encoder Inputs
#define CLK 2
#define DT 3
int counter = 0;
int currentStateCLK;
int lastStateCLK;
int keses = 1000;
String currentDir ="";
uint32_t lastms= 0;
void teker(){
if (millis() - lastms > 200)
{
Serial.print("Direction: ");
Serial.print(currentDir);
Serial.print(" | Counter: ");
Serial.println(counter);
Serial.print(" | késés: ");
Serial.println(keses);
lastms = millis();
if(digitalRead(DT) == currentStateCLK){
keses = keses+100;
}else{
if(keses > 100){
keses = keses-100;
}
}
// Remember last CLK state
lastStateCLK = currentStateCLK;
}
}
void setup() {
// Set encoder pins as inputs
pinMode(CLK,INPUT_PULLUP);
pinMode(DT,INPUT_PULLUP);
/*LED pin output*/
pinMode (led, OUTPUT);
// Setup Serial Monitor
Serial.begin(9600);
// Read the initial state of CLK
lastStateCLK = digitalRead(CLK);
/* meghívjuk az fv.-t ha LOW-ra húzod a pin-t */
attachInterrupt(0, teker, CHANGE);
}
void loop() {
// Read the current state of CLK
currentStateCLK = digitalRead(CLK);
/*red led on off*/
digitalWrite(led, HIGH);
delay(keses);
digitalWrite(led, LOW);
delay(keses);
} -
Janos250
őstag
válasz
lanszelot #20315 üzenetére
Esetleg ezt is érdemes lehet megnézni, bár nem egy túlkommentelt program.
https://prohardver.hu/tema/arduino/hsz_9926-9926.html
Új hozzászólás Aktív témák
Hirdetés
- Azonnali készpénzes Microsoft XBOX Series S és Series X felvásárlás személyesen/csomagküldéssel
- LG 55G4 - 55" OLED evo - 4K 144Hz & 0.1ms - MLA Plus - 3000 Nits - NVIDIA G-Sync - FreeSync Premium
- LG 65B4 - 65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
- BESZÁMÍTÁS! ASUS ROG STRIX Z390-E GAMING alaplap garanciával hibátlan működéssel
- BESZÁMÍTÁS! Gigabyte B760M i5 13400F 16GB DDR4 512GB SSD RTX 3070 8GB Pure Base 500DX fehér 650W
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged