Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- GoodSpeed: 3I/Atlas: Üstökös vagy idegen civilizáció űrhajója?
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Invázió egy novellában 3-4. (Update) +5. fejezet! (18+ nyelvezet)
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- gban: Ingyen kellene, de tegnapra
- GoodSpeed: Harcban az adathalászokkal - az AI tud segíteni?
- urandom0: Száműztem az AI-t az életemből
-
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
-
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
- Amazfit Bip 6 - jót olcsón
- Épített vízhűtés (nem kompakt) topic
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Elektromos autók - motorok
- Milyen lézer nyomtatót vegyek?
- E-book olvasók
- AliExpress tapasztalatok
- Íme az év legszebb játékai - a Digital Foundry szerint
- Melyik tápegységet vegyem?
- Milyen autót vegyek?
- További aktív témák...
- Dell Latitude 5440 - i7-1365U, 32GB RAM, 1TB SSD, jó akku számla, garancia
- Intel Core i7-10700 csere Intel Core i7-10700k - ra +KP
- Iphone 16 Pro Max 256GB Black Titanium
- Thrustmaster TX Racing Wheel Leather Edition Xbox PC force feedbak 3,9Nm garancia
- Western Digital Blue SA510 500GB SATA3 - Új - Eladó!
- ASUS VivoBook S16 S3607QA-PL018W
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! MSI B450 R5 5600X 32GB DDR4 512GB SSD RTX 3080 10GB RAMPAGE Shiva Cooler Master 750W
- BESZÁMÍTÁS! MSI Thin GF63 12VF-1279XHU Gamer notebook-i5 12450H 16GB DDR4 512GB SSD RTX 4060 8GB W11
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi
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
