Schemerschakeling

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 6
Geregistreerd: 02 Nov 2017, 09:01

Schemerschakeling

Berichtdoor Richard73 » 02 Nov 2017, 19:04

Hallo Allemaal ik ben nieuw hier op het forum, en mijn naar is Richard.

Ik ben bezig om een schemerschakeling te maken alleen hij werkt nog niet zoals hij moet werken.

Op het moment dat het schemer wordt gaat de lamp knipperen, en dacht met de onderstaande code dat het zou werken maar helaas.
Wie kan mij op de goede weg helpen en zeggen wat ik verkeerd heb gedaan, of wat er nog aan toegevoegd moet worden aan het programma.
En zou ook graag hulp willen krijgen en of het mogelijk is om de lamp uit te schakelen, zodat hij niet heel de nacht blijf branden, alleen tot een uur of 12 s,nachts en dat hij dan om 5 uur smorgens weer aan gaat.

Dit is het programma wat ik tot nu toe heb:

/*
Arduino Beginner's Project - No More Darkness
This project allows you to automtically turn ON lights or other devices,
whenver there isn't sufficient light in a room or environment. It uses an
LDR (Light Dependent Resistor) to sense the light intensity.

Connections:
LDR --> One leg to Vcc and the other to both analog pin 0 and to the GND via 100K resistor
Relay --> Connect one pin of the coil to digital pin 2 and the other to GND.

*/


int sensorPin = A0; // select the input pin for ldr
//int sensorValue = 0; // variable to store the value coming from the sensor
int lowTreshold = 500;
int highTreshold = 600;


void setup() {
pinMode(2, OUTPUT); //pin connected to the relay
Serial.begin(9600); //sets serial port for communication
}

void loop() {
// read the value from the sensor:
int sensorValue = analogRead(sensorPin);
Serial.println(sensorValue); //prints the values coming from the sensor on the screen

if(sensorValue < lowTreshold){ //setting a threshold value
digitalWrite(2,HIGH); //turn relay ON
}
if(sensorValue > highTreshold){
digitalWrite(2,LOW); //turn relay OFF
}
//delay(100);
}

ik hoor graag van jullie

Advertisement

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

Re: Schemerschakeling

Berichtdoor Koepel » 02 Nov 2017, 20:08

Hallo, en welkom op dit forum.

Hoe heb je die code gevonden ?
Ik kan die code ergens vinden als "Week 08: Embedded Programming".
Maar een relais meteen aan een pin van een Arduino verbinden, dan is echt geen goed idee.

Wat voor relais of relaismodule heb je ? Kun je een link geven naar waar je het hebt gekocht ?

Valt er licht van de lamp op de LDR ?
Heb je naar de getallen gekeken met de seriële monitor ?

Ik vermoed dat de waarden voor de thresholds te dicht bij elkaar zitten.
Misschien is er storing, dan zou een software filter kunnen helpen.

Om iets op een bepaalde tijd te doen, heb je een RTC nodig (RTC = Real Time Clock). Bijvoorbeeld de DS3231.

Berichten: 6
Geregistreerd: 02 Nov 2017, 09:01

Re: Schemerschakeling

Berichtdoor Richard73 » 02 Nov 2017, 21:21

Hallo,

Dit het het relais boardje wat ik gebruik:

https://nl.aliexpress.com/item/5V-Low-L ... f93111c927.

De LDR die valt niet op de lamp, deze is ongeveer 1m meter van de lamp gemonteerd, de lamp zelf hang onder een afdakje, en ik heb een PVC buisje van ongeveer 1m lang, waar ik deze LDR in heb gedaan, zodat hij net aan het begin zit van het buisje. Het werkt wel, maar het knipperen van de lamp als de schemer invalt dat is nog een punt om dat eerst goed te krijgen, en wil ik proberen om er een RTC aan te koppelen. Zoiets had ik al gelezen op internet.

Het stukje van low en hightreshold, dat heb ik op youtube gevonden, en de rest dat heb ik zelf gemaakt, dat was het probleem niet, alleen het knipperen van de lamp dat was nog het probleem, en ik dacht toen ik dat youtube filmpje zag met die low en high treshold, dacht ik dat kan het wel eens zijn om het probleem van het knipperen op te lossen.

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

Re: Schemerschakeling

Berichtdoor Koepel » 02 Nov 2017, 21:43

O :o ik dacht dat de lamp ging knipperen, en dat het knipperen het probleem was. Je wilt dat de lamp gaat knipperen ? Of niet ? Als je niet wilt knipperen, leg dan de threshold waarden verder uit elkaar.
Als je wel wilt knipperen, probeer dan dit eens:
cpp code
// Knipper als pin 8 met GND verbonden wordt.
// Met delay() en niet met millis()

const int pinButton = 8;

void setup()
{
pinMode( pinButton, INPUT_PULLUP);
pinMode( LED_BUILTIN, OUTPUT);
}

void loop()
{
if( digitalRead( pinButton) == LOW) // knop ingedrukt ?
{
digitalWrite(LED_BUILTIN, HIGH); // turn led on
delay(300);
digitalWrite(LED_BUILTIN, LOW); // turn led off
}

delay(300); // deze delay maakt onderdeel uit van het knipperen.
}

Prik met een draadje in GND en pin 8, dan gaat het ledje op het Arduino board knipperen.

De sketch maakt gebruik van delay() en niet van millis(). Tijdens een delay() kunt je niets anders doen. Wanneer millis() wordt gebruikt, dan moet een sketch herschreven worden, maar dan is het wel mogelijk om meerdere taken tegelijk te doen.

Die relaismodule lijkt me prima. Het is wel heel goedkoop, misschien dat de contacten van het relais een keer doorbranden.

Berichten: 6
Geregistreerd: 02 Nov 2017, 09:01

Re: Schemerschakeling

Berichtdoor Richard73 » 02 Nov 2017, 22:31

Het moet niet gaan knipperen, dat doet hij nu wel als de schemer gaat worden, dan kan hij nog niet de juiste waarde kiezen( laat ik het zo maar even zeggen) dat hij constant moet blijven branden.

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

Re: Schemerschakeling

Berichtdoor Koepel » 02 Nov 2017, 22:55

leg dan de threshold waarden verder uit elkaar.

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

Re: Schemerschakeling

Berichtdoor shooter » 02 Nov 2017, 23:11

De voeding van het relais mag NIET uit de arduino komen, dus zorg voor voldoende stroom.
zet een paar waarden in de monitor dan kun je zien wat er gebeurt.
meet eens de spanning op de 5 Volt, zet dan het relais simpel aan door de PIN HIGH te maken, kijk dan of het goed werkt, en dan pas de LDR aansluiten.
paul deelen
shooter@home.nl

Berichten: 6
Geregistreerd: 02 Nov 2017, 09:01

Re: Schemerschakeling

Berichtdoor Richard73 » 02 Nov 2017, 23:50

Koepel schreef:leg dan de threshold waarden verder uit elkaar.



Dat heb ik nu gedaan, morgen ochtend zal ik het kunnen zien wat hij doet, laat het weten.

Alvast bedankt.

Berichten: 6
Geregistreerd: 02 Nov 2017, 09:01

Re: Schemerschakeling

Berichtdoor Richard73 » 05 Nov 2017, 11:35

Hallo, De schakeling doet het nu goed, de lamp die knipper niet meer.

Ik heb de waardes van low and High Treshold op
Low = 400
High = 850

Nu zou ik graag nog willen weten wat welke waarde is voor als het donker gaat worden is dat de Low of High waarde?
Want nu is het zo dat het zeg maar half donker is moet zijn dan gaat de lamp branden, en het moet zo goed als helemaal licht zijn dat de lamp weer uit gaat.

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

Re: Schemerschakeling

Berichtdoor Koepel » 05 Nov 2017, 14:36

Je LDR zit aan de 5V en A0 ?
Des te meer licht, des te lager de weerstand van de LDR.
De de waarde van A0 met analogRead(A0) wordt hoger als er meer licht is.

Dus 'lowTreshold' kun je lager maken, dan gaat de lamp later aan als het donkerder is.
En 'highTreshold' kun je lager maken, dan hoef je niet te wachten totdat het heel licht is.

Weet je wat de Seriële monitor is ? Heb je die al gevonden in het menu of met het knopje rechtsboven (vierkantje met vergrootglas of zo iets, ik heb geen idee wat het plaatje moet voorstellen).
De waarden zijn te zien op de seriële monitor.

Zou je onderin je sketch de delay willen aanzetten. En liever 500 dan 100:
cpp code
//delay(100);
delay(500); // slow down the sketch
}


Dan wacht je totdat het schemert en dan kijk je op het scherm welke waarde daarbij hoort.

Of kun je geen computer aan de Arduino koppelen als de Arduino bij de LDR en de lamp staat ?

Volgende

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 4 gasten