Arduino + NO brytare + LEDs?

Planering och tankar kring eventuella framtida projekt.
jolerius
Inlägg: 30
Blev medlem: 22 juli 2012, 22:12:17

Re: Arduino + NO brytare + LEDs?

Inlägg av jolerius »

vrf är för oss i den yngre generationen en förkortning för varför. Det är så man skriver på nätet :)

ok, får försöka sätta mig in i koden, men det blev genast en massa uttryck i koden som jag aldrig ens hört talats om, vilket gör det mycket svårare att sätta sig in i den.

Men är det någon som vet om man kan gruppera ihop två utgångar under ett namn?
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Arduino + NO brytare + LEDs?

Inlägg av jesse »

ja nu funkar det. Men jag fattar inte vrf.
OK, vi analyserar koden: (om det är "Krille Krokodil"'s kod du använt)

Kod: Markera allt

 //...

LEDPower = 255; // 255 = 100% ljus. Sätts om knappen EJ är intryckt.


// ... när delayloopen är slut så startar fade-stadiet... Det innebär att i varje varv av den här
// loopen vi är inne i, så kommer denna else if - sats att vara sann... 
else if (ButtonState) { 
		//Knapp intryckt och vi befinner oss nu i fade-läge 
		if(LEDPower > 0) LEDPower--; // Då minskas värdet på LEDpower ett steg.
	
	} 

	analogWrite(LEDPin, LEDPower);	
[/quote] // sedan skrivs det nya värdet till PWM-generatorn

delay(10); // för att inte loopen ska gå för fort har vi en fördröjning i varje steg.

// nu är det lätt att räkna ut hur lång tid faden tar:
// LEDpower startar med värdet 255: Det tar alltså 255 "varv" innan den är nere på noll.
// 255 * 10 ms = 2.55 sekunder, om nu delay(10) betyder 10 ms ?
[/code]
en massa uttryck i koden som jag aldrig ens hört talats om
Det är antagligen Arduino-funktionerna du talar om? Dem får man läsa om på Arduinos hemsida.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Arduino + NO brytare + LEDs?

Inlägg av sodjan »

> Men är det någon som vet om man kan gruppera ihop två utgångar under ett namn?

Nej, inte direkt. Däremot kan du skriva en egen funktion som hanterar
båda portarna så får du bara ett "anrop" från huvudkoden.

> ...men det blev genast en massa uttryck i koden som jag aldrig ens hört talats om...

Är det inte alltid det? Eller hur menar du? Svårt att kommentrera
mer än så utan att veta *vad* det är som du syftar på.
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Arduino + NO brytare + LEDs?

Inlägg av Krille Krokodil »

Skall man gruppera utgångar skriver man en funktion för det, tex:

void SetLedPower(byte Power){

analogWrite(LEDPin1, Power);
analogWrite(LEDPin2, Power);
}
sneaky
Inlägg: 1621
Blev medlem: 22 juni 2009, 18:38:42

Re: Arduino + NO brytare + LEDs?

Inlägg av sneaky »

Förlåt off-topic men jag kan inte hålla mig, nej, det är inte "så man skriver på nätet". Det är ren jävla slöhet. Säger en gammal gubbe på 32.

Nedanstående skrev jag under tiden som de andra gossarna hann emellan men jag låter det stå kvar ändå. Kanske kan de olika formuleringarna hjälpa:
Vad gäller att gruppera ihop två utgångar så är väl svaret "nja". Du kan ju skriva till hela porten direkt istället för en pinne i taget, då blir det en rad istället för två. Eller så kan du ju skriva en funktion som antingen "slår på" eller "slår av" pinnarna du är intresserad av och sedan kallar du de funktionerna istället för att manuellt slå på och av pinnarna.
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Arduino + NO brytare + LEDs?

Inlägg av Krille Krokodil »

Fick lite arbetstorka nu en timma så jag roade mig med att skriva koden som en tillståndsmaskin.

Kod: Markera allt

byte ButtonStatus;
byte LEDPower;
byte State = 0;
boolean NewState = true;

void setup(){
	
	pinMode(LEDPin, OUTPUT);
	pinMode(ButtonPin, INPUT_PULLUP);
}


void loop(){

	ButtonStatus = !digitalRead(Button); //Inverterad så att NO med intern pullup på ger 1 intryckt.  
		
	analogWrite(LEDPin, LEDPower);	

	switch(State){

	case 0: State0(); break; // LED släcks.
	case 1: State1(); break; // LED tänds upp under 30 sekunder.	
	case 2: State2(); break; // LED fade till 0 
 		
	}
	
	delay(10);			

}
 	
	
void State0(){

	// State init  

	if(NewState){
		
		LEDPower = 0;
		NewState = false;
		
	}

	// To do in state 
	
	
	// State changes

	if(ButtonStatus){
		
		State = 1;
		NewState = true;

	}


}

void State1(){

	static unsigned int DelayCounter;

	// State init  

	if(NewState){
		
                          LEDPower = 255;
		DelayCounter = 3000;
		NewState = false;
		}

	// To do in state 
	
	DelayCounter--;

	// State changes

	if(!ButtonStatus){
		
		State = 0;
		NewState = true;

	} else if(Delay == 0){
		
		State = 2;
		NewState = true;

	}

}

void State2(){

	// State init  

	if(NewState){
		
		NewState = false;
				
	}

	// To do in state 
	
	if(LEDPower) LEDPower--; 

	// State changes 

	if(!ButtonStatus){
		
		State = 0;
		NewState = true;

	}

}


jolerius
Inlägg: 30
Blev medlem: 22 juli 2012, 22:12:17

Re: Arduino + NO brytare + LEDs?

Inlägg av jolerius »

Oj, nu hängde jag inte med alls. Jämfört med den här nya koden så verkar den förra som en barnlek för mig. :S

Men jag har ett nytt bekymmer. Jag kommer driva arduinon med ett 9v batteri kopplat till Vin och Gnd. Kan jag på något sätt göra så att LED blinkar när spänningen kommer under ett visst värde? Visst man lär ju märka när batteriet är slut. Men hade vart coolt om man kunde få en status på det så att man kan köpa nytt med en gång om man inte har det hemma.

Eller är det så att jag måste koppla in batteriet på annat sätt för att kunna övervaka det?
Användarvisningsbild
Klas-Kenny
Inlägg: 11840
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Arduino + NO brytare + LEDs?

Inlägg av Klas-Kenny »

Det är enkelt, en spänningsdelare av två motstånd så man får ut en lägre spänning som Arduinon kan ta direkt på ingången, sen koppla det till en analog ingång på Arduinon vilken man läser av lite då och då och kollar värdet.

Kan rekommenderas att även montera tex. en Zenerdiod till den ingången så att man får lite redundans mot för hög spänning ifall tex. Det ena motståndet lossnar.
jolerius
Inlägg: 30
Blev medlem: 22 juli 2012, 22:12:17

Re: Arduino + NO brytare + LEDs?

Inlägg av jolerius »

Ja för dig lät det tämligen enkelt.. men i mina öron va det rena grekiskan.. du skulle inte kunna rita upp det?
sneaky
Inlägg: 1621
Blev medlem: 22 juni 2009, 18:38:42

Re: Arduino + NO brytare + LEDs?

Inlägg av sneaky »

Det blir nog lättare att förstå den biten när du gått igenom den kod du redan fått och förstått den först ;) Tyvärr är det en liten inlärningströskel när man ger sig in i det här träsket. Men! Det är väldans skoj när saker och ting börjar "klicka" i skallen och man börjar förstå hur saker och ting hänger ihop. Jag får känslan av att du har lite för bråttom och inte hinner smälta stegen innan du går vidare till nästa steg.

Men, för att bena upp Klas-Kennys inlägg lite så kan du ta det steg för steg.
(edit: Nedan länkar slumpade från google, har bara skummat texten)
Spänningsdelare: http://www.sparkfun.com/tutorials/207
Analog ingång: http://arduino.cc/en/Tutorial/AnalogInput
Zener-dioder: http://en.wikipedia.org/wiki/Zener_diode#Uses
Som du märker så växer det snabbt och det är därför det är bra att ta det lite lugnt, ett steg i taget. Bara som referens så tog det mig ett par dagar innan jag fick min första PIC att överhuvudtaget visa livstecken ;)

Allt detta förutsatt förstås att du vill lära dig och kunna göra egna projekt med egen kod längre fram. Om du bara vill få just den här prylen att funka så går det såklart bra att klippa o klistra tills det fungerar.
jolerius
Inlägg: 30
Blev medlem: 22 juli 2012, 22:12:17

Re: Arduino + NO brytare + LEDs?

Inlägg av jolerius »

Ja, tanken e ju att lära mig.. så detta blir ett projekt att starta med.. men samtidigt vill man ha ut så mycke som möjligt av det..

Någon som förresten vet om arduino nano har några begränsningar som gör att jag inte kan köra detta projekt på en sådan?Nyckelskåpet e inte tillräckligt stort för min arduino uno jag lekt med...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Arduino + NO brytare + LEDs?

Inlägg av sodjan »

Det är bara att räkna pinnar som du behöver!
Jag har svårt att se att det inte räcker...
Vad blir det, 4 st?
2 LEDs, 1 kontakt och 1 batterimätning.

http://arduino.cc/en/Main/ArduinoBoardNano/ :
Digital I/O Pins: 14
Analog Input Pins: 8
jolerius
Inlägg: 30
Blev medlem: 22 juli 2012, 22:12:17

Re: Arduino + NO brytare + LEDs?

Inlägg av jolerius »

men nanokorten har ingen annan begränsning än att de e mindre bara??
sneaky
Inlägg: 1621
Blev medlem: 22 juni 2009, 18:38:42

Re: Arduino + NO brytare + LEDs?

Inlägg av sneaky »

Har du läst dokumentationen till de två korten, eller åtminstone sammanfattningen? Den ena länken fick du ju av sodjan.
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Arduino + NO brytare + LEDs?

Inlägg av Krille Krokodil »

jolerius skrev:Oj, nu hängde jag inte med alls. Jämfört med den här nya koden så verkar den förra som en barnlek för mig. :S
Tillståndsdiagram är en metod för att bryta ner komplexa problem i mindre, enklare bitar, så här ritar man dem:
Bild

Så du har 3 states:

0 LED släckt
1 LED fullt på
2 LED fade to black

Entry action för dem är:

0 Släck LED
1 Tänd LED och nollställ 30 sek-timern
2 Starta fade out

Transitions och transition conditions är:

0->1 Dörr öppen
1->0 Dörr stängd
1->2 Dörr öppen > 30 sek
2->0. Dörr stängd

Så istället för ett större, komplext problem att lösa har vi nu 10 st mindre, enklare.
Skriv svar