Arduino + NO brytare + LEDs?

Planering och tankar kring eventuella framtida projekt.
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 »

Ang. Hur ofta man behöva läsa av ingången så är väl det bästa att köra den när man öppnar dörren, för vad jag förstod så skulle det blinka istället för att lysa när man öppnar dörren bara. Det finns ju ingen anledning att kolla ingången massor av gånger när det inte spelar någon roll. Då slipper man dessutom ha någon tickande timer när man lagt processorn i sleep, räcker ju att den vaknar av att man öppnar dörren.
jolerius
Inlägg: 30
Blev medlem: 22 juli 2012, 22:12:17

Re: Arduino + NO brytare + LEDs?

Inlägg av jolerius »

dock blir det en fördröjning om man ska lyckas väcka den efter sömn. Och den fördröjningen kan vara ack så jobbig om man ska ha nycklar snabbt..

Jag skippar kontrollen av batteriets status i detta projekt. Men om nån kan hjäälpa mig utveckla en kod så att arduinon går i sleep läge hade det vart guld. Är som sagt väldigt novis på detta.
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 »

> dock blir det en fördröjning om man ska lyckas väcka den efter sömn.

Vad tar det för en AVR att "vakna", några (tiotals) millisekunder kanske?
jolerius
Inlägg: 30
Blev medlem: 22 juli 2012, 22:12:17

Re: Arduino + NO brytare + LEDs?

Inlägg av jolerius »

AVR? Vad är det?

Det enda jag kunnat testa är att liksom döda den med spänningen och då tar kanske en sekund för den att vakna och tända LEDen. Men det kanske inte är så det är tänkt? För om man använder strömbrytarn för att bryta inkommande spänning till arduinon så står man ju där med den här jobbiga sekunden innan lampan tänds. Det tycker iallfall jag är oerhört irriterande. Jag vill att LEDen ska tändas mer eller mindre direkt.
Användarvisningsbild
Wedge
Inlägg: 1026
Blev medlem: 8 juli 2012, 17:33:33

Re: Arduino + NO brytare + LEDs?

Inlägg av Wedge »

Det är Arduinons bootloader som tar tid, processorn i sig vaknar på ett halvt ögonblick.
Tror jag läst att bootloadern väntar ca 500 ms för att se om det kommer in programmeringskommandon på serieporten.
Vill man slippa den fördröjningen får man flasha om kretsen med en egen bootloader.

Eller i detta fall skulle elektroniken för LED-styrningen kunna göras "omvänd", LEDen tänds direkt av hårdvaran och är på tills processorn aktivt släcker/dimmar den.
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 »

AVR är den typ av processor som sitter i Arduinon. Dvs. en ATmegaXXX nånting.

>Vill man slippa den fördröjningen får man flasha om kretsen ...

Men hallå!

Processorn går ju inte i bootloader-läge bara för att man sätter den i sleep-mode.
Det går precis lika fort för den att vakna som för vilken AVR som helst.

Exempelvis så tar det för ATmega328P max 65ms start-up tid.

(hmm bläddrar i databladet ... hmmm sidan 38 - sleep modes ... ser här att man kan väcka den ur "POWER DOWN" med INT0 och INT1 och "pin change" ... bra.... power down är antagligen den långsammaste att få igång igen... bläddrar ....

If an enabled interrupt occurs while the MCU is in a sleep mode, the MCU wakes up. The MCU is then halted for
four cycles in addition to the start-up time, executes the interrupt routine, and resumes execution from the instruction following SLEEP. The contents of the Register File and SRAM are unaltered when the device wakes up from
sleep. If a reset occurs during sleep mode, the MCU wakes up and executes from the Reset Vector.


OK..... bläddrar ...

Note that if a level triggered interrupt is used for wake-up from Power-down, the required level must be held long
enough for the MCU to complete the wake-up to trigger the level interrupt. If the level disappears before the end of the
Start-up Time, the MCU will still wake up, but no interrupt will be generated.
...
When waking up from Power-down mode, there is a delay from the wake-up condition occurs until the wake-up
becomes effective. This allows the clock to restart and become stable after having been stopped. The wake-up
period is defined by the same CKSEL Fuses that define the Reset Time-out period, as described in ”Clock
Sources” on page 27.
)


OK... så det beror på vilken inställning Arduino använder för klockan, men max tid för uppstart är ca 65ms... dvs 0.065 sek. Orkar man inte vänta så länge så kan man använda en annan "sleep-mode" där klockan inte stängs ner - då tar det bara några enstaka programcykler (någon miljondels sekund) att starta upp.

Jag programmerar inte Arduino själv, men sleep-koden bör vara väldigt enkel att fixa. (Förutsatt att man programmeringens grunder, annars kan vad som helst bli svårt). Här en liten vägledning: Sleeping Arduino - Part 2 Wake Up Via An External Interrupt. (Det är kanske lämpligt att läsa Part 1 först)
sneaky
Inlägg: 1621
Blev medlem: 22 juni 2009, 18:38:42

Re: Arduino + NO brytare + LEDs?

Inlägg av sneaky »

Han menar att den måste flashas om för att slippa fördröjning vid uppstart om man kör varianten där man låter brytaren slå av och på matningen.
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Re: Arduino + NO brytare + LEDs?

Inlägg av Bosen »

AVR är processorn som arduinon är uppbyggd av. Mer exakt AVR328.
Läs mer här: http://arduino.cc/en/Main/Hardware

Att väcka en processor från SLEEP är inte samma sak som att starta efter man har brutit strömmen till den. Det som tar tid vid en kallstart är som sagt bootloadern. Bootloadern är ett litet program som finns i processorn som gör att du kan ladda upp dina program via USB.
Läs mer här: http://arduino.cc/en/Hacking/Bootloader

Man kan skippa bootloadern om man flashar in ditt arduinoprogram via ISP istället.
Läs Mer här: http://arduino.cc/en/Hacking/Programmer
Och här:http://arduino.cc/en/Tutorial/ArduinoISP/

Det finns också en no-wait bootloader man kan använda också:
http://www.ladyada.net/library/arduino/bootloader.html

Men ett annat alternativ är som Wedge sa att göra LED-styrningen omvänd.
Då matar du dina LEDs med + och sätter - till en I/O på arduinon. För att tända dina LEDs så sätter du pinnen låg istället för hög. På detta sätt så lyser LEDsen från start även innan processorn har startat. Men då måste du också ändra i programmet för analogWrite(0) är nu fullt tänd och analogWrite(255) är helt släckt.... alltså omkastat....
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 »

sneaky skrev:Han menar att den måste flashas om för att slippa fördröjning vid uppstart om man kör varianten där man låter brytaren slå av och på matningen.
OK, jag var lite för snabb där. Jag trodde vi prarade om sleep-mode....
jolerius skrev:om nån kan hjäälpa mig utveckla en kod så att arduinon går i sleep läge hade det vart guld.
Användarvisningsbild
Wedge
Inlägg: 1026
Blev medlem: 8 juli 2012, 17:33:33

Re: Arduino + NO brytare + LEDs?

Inlägg av Wedge »

Bosen skrev:Men ett annat alternativ är som Wedge sa att göra LED-styrningen omvänd.
Då matar du dina LEDs med + och sätter - till en I/O på arduinon. För att tända dina LEDs så sätter du pinnen låg istället för hög. På detta sätt så lyser LEDsen från start även innan processorn har startat. Men då måste du också ändra i programmet för analogWrite(0) är nu fullt tänd och analogWrite(255) är helt släckt.... alltså omkastat....
Nä, inte riktigt. Pinnen sätts som standard till input (utan intern pullup) vid reset, och det spelar då ingen roll om man vänder LEDen si eller så.
Man får ta hjälp av en transistor till att driva LEDen, och låta den få basström direkt från matningsspänningen. Lägg ett extern pullupmotstånd på I/O-pinnen bara, så driver det basström tills I/O-pinnen blir utgång och tar över styrningen. Programlogiken blir densamma, det är bara LED-drivningen som blir lite "omvänd", den tänder LEDen direkt utan att pinnen behöver initieras först.
Användarvisningsbild
Bosen
Inlägg: 1753
Blev medlem: 18 juli 2005, 10:56:31
Ort: Karl Gustav, Varberg
Kontakt:

Re: Arduino + NO brytare + LEDs?

Inlägg av Bosen »

Ok, fel av mig :)
jolerius
Inlägg: 30
Blev medlem: 22 juli 2012, 22:12:17

Re: Arduino + NO brytare + LEDs?

Inlägg av jolerius »

Wedge skrev:
Bosen skrev:Men ett annat alternativ är som Wedge sa att göra LED-styrningen omvänd.
Då matar du dina LEDs med + och sätter - till en I/O på arduinon. För att tända dina LEDs så sätter du pinnen låg istället för hög. På detta sätt så lyser LEDsen från start även innan processorn har startat. Men då måste du också ändra i programmet för analogWrite(0) är nu fullt tänd och analogWrite(255) är helt släckt.... alltså omkastat....
Nä, inte riktigt. Pinnen sätts som standard till input (utan intern pullup) vid reset, och det spelar då ingen roll om man vänder LEDen si eller så.
Man får ta hjälp av en transistor till att driva LEDen, och låta den få basström direkt från matningsspänningen. Lägg ett extern pullupmotstånd på I/O-pinnen bara, så driver det basström tills I/O-pinnen blir utgång och tar över styrningen. Programlogiken blir densamma, det är bara LED-drivningen som blir lite "omvänd", den tänder LEDen direkt utan att pinnen behöver initieras först.

Har du lust att rita upp lite hur du har tänkt? Någon som kan hinta mig om lite hjälp med koden så att jag kan använda ett sleepmode.
Anledningen att jag måste styra den med batteri är avsaknaden av möjlighet att dra el till den däör nyckelskåpet ska vara. Så jag uppskattar hjärtligt all form av hjälp jag kan få???
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 »

> Någon som kan hinta mig om lite hjälp med koden så att jag kan använda ett sleepmode.

Du har fått en länk till en sida med massor av hintar och rena kodexempel.
http://arduino.cc/playground/Learning/ArduinoSleepCode.

Men en annan lösning är ju (som har sagts) att bryta spänningen helt
till Arduinon när dörren är stängd. Då faller "sleep" bort helt.
jolerius
Inlägg: 30
Blev medlem: 22 juli 2012, 22:12:17

Re: Arduino + NO brytare + LEDs?

Inlägg av jolerius »

bryta spänningen vill jag inte göra då mina erfarenheter av det gör att arduinon tar alldeles för lång tid på sig innan lampan är tänd. Men om du kan förklara för mig ur jag ska göra för att få den lite mer direkt. På ett enkelt sättså är jag absolut öppen för idéer
sneaky
Inlägg: 1621
Blev medlem: 22 juni 2009, 18:38:42

Re: Arduino + NO brytare + LEDs?

Inlägg av sneaky »

Bosen gav dig ju en bunt länkar om just det. Har du läst dem?
Skriv svar