Hirdetés
- Yettel topik
- Motorola Edge 70 - többért kevesebbet
- Xiaomi 15T Pro - a téma nincs lezárva
- Sok földi jó került a Redmi K90-be is
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- A legújabb iPhone kiegészítő egy zokni, amit magunkra akaszthatunk
- Samsung Galaxy Z Fold3 5G - foldi evolúció
- Telekom mobilszolgáltatások
- Miért fárad gyorsabban az iPhone akku, mint az androidos?
- iPhone topik
-
Mobilarena
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
-
hukhl
csendes tag
Köszönöm aryes és neked is Janos250!
Ez a globális változó ez bejött.
Viszont a funkcióból sajnos nem sikerült kinyernem a return értéket.
Biztos valami alap nyelvtani hibát vétek ami miatt nem sikerül. Monitorozva a programot, sajnos nem kapom meg kívülre az értéket...
Lent látató az eddigi kód bejelölve ahova át akarnám másolni a visszatérési értéket majd újra betenni a funkcióba. Így megoldani a LED ki és bekapcsolását...Végig gondolva az eddig megírt funkciót, ha többször fogom behívni akkor a "previousMillis" értékeket külön-külön kell nyilvántartani, mivel más időintervallumot fogok megadni az egyes ledekhez és így máskor kapja meg majd az aktális Millis értéket.
//---------
//Constans
//---------
const int LED1 = 12;
const int LED2 = 10;
const int LED3 = 8;
const int LED4 = 6;
const int BUTTON1 = 4;
const int BUTTON2 = 2;
//---------
//Variables
//---------
unsigned long previousMillis = 0;
int Button1State = 0;
int Button2State = 0;
int Button1LastState = 0;
int Button2LastState = 0;
int Button1CountState = 0;
int Button2CountState = 0;
bool LedStateResult = LOW;
//-------------------
// Start Initializing
//-------------------
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(BUTTON1, INPUT);
pinMode(BUTTON2, INPUT);
Serial.begin(9600);
}
//--------------------
//Main CODE start here
//--------------------
void loop() {
Button1State = digitalRead(BUTTON1);
unsigned long currentMillis = millis();
//---------------------------------
//Button State Reading and Counting
//---------------------------------
if (Button1State != Button1LastState) {
if(Button1State == HIGH){
Button1CountState = Button1CountState+1;
Serial.println("BUTTON STATE CHANGED");
}
}
Button1LastState = Button1State;
Serial.print("LED Result Main Loop : ");
Serial.println(LedStateResult);
//-----------------------------------------
//State machine according to Button 1 State
//-----------------------------------------
switch (Button1CountState)
{
case 0:
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
Serial.println("CASE0");
break;
case 1:
LedMillis(2000, LED1, currentMillis, LedStateResult);
LedStateResult = LedMillis;
// Serial.print("Millis Function Reuslt: ");
// Serial.println(LedMillis);
Serial.print("LED Result CASE1 : ");
Serial.println(LedStateResult);
//LedMillis(500, LED2, currentMillis, LedStateResult);
// LedMillis(500, LED3, currentMillis, LedStateResult);
Serial.println("CASE1");
break;
case 2:
Serial.println("CASE2");
break;
case 3:
Serial.println("CASE3");
break;
case 4:
Serial.println("CASE4");
break;
case 5:
Serial.println("CASE5");
break;
case 6:
Serial.println("CASE6");
Button1CountState = 0;
break;
}
}//----------
//Function
//-----------
bool LedMillis(long interval, int LEDPin, unsigned long currentMillis, bool ledState){
bool LEDStateResultInternal;
Serial.print("Previous Millis :");
Serial.println(previousMillis);
Serial.print("Current Millis :");
Serial.println(currentMillis);
if (currentMillis - previousMillis >= interval)
{
if(ledState == LOW)
{
ledState = HIGH;
LEDStateResultInternal = ledState;
Serial.print("LED Result LedState High :");
Serial.println(LEDStateResultInternal);
}
else{
ledState = LOW;
LEDStateResultInternal = ledState;
Serial.print("LED Result LedState Low :");
Serial.println(LEDStateResultInternal);
}
previousMillis = currentMillis;
digitalWrite(LEDPin, ledState);
Serial.print("LED Result Final LedState :");
Serial.println(ledState);
}
return LEDStateResultInternal;
}
Új hozzászólás Aktív témák
- Yettel topik
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Futás, futópályák
- Ubiquiti hálózati eszközök
- Casco és kötelező gépjármű felelősségbiztosítás
- Videós, mozgóképes topik
- Kerékpárosok, bringások ide!
- NBA és kosárlabda topic
- Háztartási gépek
- Azonnali informatikai kérdések órája
- További aktív témák...
- Bontatlan! Új Lenovo Thinkpad T14 G5 Tartós Üzleti Laptop 14" -45% Ultra 7 165U 16/512 FHD+ Magyar!
- Bomba Ár! Fujitsu LifeBook E751 - i5-2GEN I 4GB I 500GB I DVDRW I 15,6" HD I Cam I W10 I Gari!
- Bomba ár! Dell Latitude E6440 - i5-4GEN I 8GB I 256SSD I 14" HD I HDMI I Cam I W10 I Garancia!
- Bomba ár! Dell Latitude E6540 - i5-4GEN I 8GB I 500GB I HDMI I 15,6" HD I Cam I W10 I Garancia!
- Bomba Ár! Lenovo ThinkPad E15 G4 AMD - Ryzen 5 5625U I 8GB I 256SSD I 15,6" FHD I HDMI I W11 I Gari
- Jura Impressa F70 Automata kávégép 6 hónap Garancia Beszámítás Házhozszállítás
- HIBÁTLAN iPhone 14 Pro Max 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3918, 100% Akkumulátor
- HIBÁTLAN iPhone 14 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3240, 100% Akksi
- HIBÁTLAN iPhone 13 Mini 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3838, 100% Akksi
- Samsung Galaxy A32 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Biztos valami alap nyelvtani hibát vétek ami miatt nem sikerül. Monitorozva a programot, sajnos nem kapom meg kívülre az értéket...
ekkold

