Fading led om beter te kunnen inslapen

Als U een gezamenlijk project wil starten of aan projecten van anderen mee wilt werken.
Berichten: 2
Geregistreerd: 04 Nov 2019, 14:49

Fading led om beter te kunnen inslapen

Berichtdoor pluto9 » 04 Nov 2019, 16:03

Hallo allemaal,

Ik heb een apparaatje gemaakt om beter kunnen inslapen.
Het is een fading led met een frequentie van 4 sec.
Ik synchroniseer mijn ademhaling hierop, en daardoor kan ik beter inslapen.
Ik gebruik het elke dag en kan niet meer zonder. Vroeger gebruikte ik
melatonine pilletjes om in te slapen, maar dit is nu niet meer nodig!
Ik experimenteer nog met de frequentie, maar voor de ademhalings synchronisatie is 4 sec perfect.
Als je de Led met een frequentie van 1 sec laat faden en je laat het licht op het plafond schijnen, dan heeft dat ook een slaapverwekkend effect. (ook bij honden !)

De schakeling bestaat uit een attiny45, een rode led en 2 batterijen AAA + schakelaar.

Nu is het zo dat ik de schakeling activeer met een schakelaar op spanning van de batterijen.
Dus bij het activeren van de schakelaar begint de LED te faden, tot dat ik s’morgens weer wakker wordt.
Dit is natuurlijk niet ideaal. Soms vergeet ik het uitzetten en daardoor gaan natuurlijk de batterijen snel leeg.

De Led zou maar 15 minuten moeten Faden.

Nu is mijn vraag of iemand mij kan helpen bij het volgende:

1. Bij druk op de knop
2. Start de fading led voor 15 minuten
3. En daarna gaat de schakeling in sleep mode (om de batterijen te sparen)

wie kan mij helpen deze code aan te passen?


Alvast bedankt voor alle hulp.


Ik gebruik deze code voor de fading led:


Code: Alles selecteren
const int LED = 10;

void setup()
{
}

void loop()
{
  static float in = 4.712;
  float out;
 
 // do input, etc. here - as long as you don't pause, the LED will keep pulsing
 
  in = in + 0.001;
  if (in > 10.995)
    in = 4.712;
  out = sin(in) * 127.5 + 127.5;
  analogWrite(LED,out);
}

Advertisement

Gebruikers-avatar
Berichten: 2236
Geregistreerd: 06 Aug 2016, 01:03

Re: Fading led om beter te kunnen inslapen

Berichtdoor Koepel » 04 Nov 2019, 21:08

Voor de sleep mode zou ik iets eenvoudigs doen, bijvoorbeeld op deze manier: http://www.technoblogy.com/show?KX0
De ATtiny heeft meer dingen die uitgezet kunnen worden, maar de SLEEP_MODE_PWR_DOWN zet het meeste toch al uit. Andere voorbeelden gaan soms overdreven dingen uitzetten, met veel code. Dat is dus niet nodig.

Heb je een Arduino Uno om dingen uit te proberen ?
Kun je een Arduino Uno (of een kleiner board met een ATmega328P) nemen en een adapter ? Al die batterijen is niet erg milieubewust ;)

Heb je nog een weerstand bij die led ?

Het menselijk ook ziet de lichtsterkte met een curve die ongeveer ¹⁰log is.
Vind je de helderheid van de led goed ? Hij is lang aan en maar kort uit, vanwege die ¹⁰log curve.

Heb je al eens millis() gebruikt ?
Je loop() draait nu in zijn eigen tempo.
Zou het niet beter zijn om een sketch te hebben waarbij je de frequentie gewoon kunt opgeven ?
Bijvoorbeeld zo:
Code: Alles selecteren
float frequentie = 4.0;

Dan heb je millis() en wiskunde nodig.

Ik heb twee voorbeelden gemaakt voor een fading led.
Om te beginnen gebruikt ik millis() om met een vast interval de led helderheid te updaten.
Als je eenmaal millis() gebruikt, dan is 15 seconden iets doen niet moeilijk meer.
https://github.com/Koepel/Fun_with_millis/blob/master/millis_led_heartbeat.ino
https://github.com/Koepel/Fun_with_millis/blob/master/millis_soft_pulsating_led.ino

Berichten: 2931
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Fading led om beter te kunnen inslapen

Berichtdoor shooter » 04 Nov 2019, 21:59

Je kunt de power via een transistor laten lopen en die na 15 minuten uit laten schakelen met een simpele fet kan dat heel makkelijk je hebt wel een uitgang nodig op de tiny.
als je dat doet dan zul je wel andere getallen in jouw loop moeten zetten om weer op 4 sec uit te komen.
paul deelen
shooter@home.nl

Berichten: 2
Geregistreerd: 04 Nov 2019, 14:49

Re: Fading led om beter te kunnen inslapen

Berichtdoor pluto9 » 08 Nov 2019, 13:40

Bij reset gaat de led 10 seconden faden. :D
Na de 10 seconden blijft de led branden. :(
De led zou moeten uitgaan.......
wat doe ik hier verekeerd??? :o


1. Reset (drukknop)
2. led gaat 10 sec faden
3. sleep mode



Code: Alles selecteren
#include <avr/sleep.h>
#define adc_disable() (ADCSRA &= ~(1<<ADEN)) // disable ADC (before power-off)

// constants
const unsigned long fading = 10000; // Fade time - 10 sec
unsigned long StartTime = 0;        // start time
const int LED = 10;

void setup () {
  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
  adc_disable(); // ADC uses ~320uA
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
}

void enterSleep (void)
{
  sleep_enable();
  sleep_cpu();
}

// Main loop ----------------------------------------------

void loop () {
 
  do {
     // hier komt de fade code
    static float in = 4.712;
  float out;
  in = in + 0.001;
  if (in > 10.995)
    in = 4.712;
  out = sin(in) * 127.5 + 127.5;
  analogWrite(LED,out);

 
  } while (millis() - StartTime < fading);
  enterSleep();
  // Continue after reset
}

Gebruikers-avatar
Berichten: 2236
Geregistreerd: 06 Aug 2016, 01:03

Re: Fading led om beter te kunnen inslapen

Berichtdoor Koepel » 08 Nov 2019, 17:27

Voor dat je in de sleep mode gaat, kun je de led uitzetten met een digitalWrite().
Je kunt ook precies uitrekenen wanneer de led door een dal gaat, en dan stoppen.
Je zou zelfs de laatste paar seconden het faden in zijn geheel kunnen gaan dimmen totdat de led uit is. Bijvoorbeeld faden tot 14 minuten, dan het dimmen starten en die een minuut laten duren en bij 15 minuten in de sleep mode.

Bij een sketch die eenmalig draait kun je direct de waarde van millis() gebruiken zonder StartTime.
De waarde van millis() is na een reset nul, en hij telt de millisconden. Na 50 dagen is de millis() 0xFFFFFFFF en dan is er een rollover naar 0x00000000. Dus als je binnen 50 dagen een reset geeft, dan kun je millis() als gewone teller gebruiken.

Berichten: 2931
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Fading led om beter te kunnen inslapen

Berichtdoor shooter » 08 Nov 2019, 22:41

in de loop staat ook nog een static definitie van in en jij verhoogt datzelfde getal en in blijft dus 4.713.
verder heeft koepel gelijk
paul deelen
shooter@home.nl

Terug naar Gezamenlijke projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 0 gasten