Bewegingsensor die LEDs aanzet...

Hardware geleverd door Arduino
Berichten: 26
Geregistreerd: 01 Okt 2017, 14:23

Re: Bewegingsensor die LEDs aanzet...

Berichtdoor Dracul » 01 Okt 2017, 18:58

Ah, dat is goed om te horen!
Ik hoef maar 2 LEDs aan te sluiten, dus dat scheelt. De combinatie met de sensor is dan ook geen probleem?

Ik heb nu één LED aangesloten zitten, + in Datapin 13, en de - in GND.
Je bedoelt dat je dan de andere LED in een willekeurige andere datapin kunt doen? Maar hoe doe je dat dan met de GND?

[ik verifieer eventjes, voordat ik het boardje al bij mijn eerste geklooi kapot maak ;-) )

Advertisement

Gebruikers-avatar
Berichten: 4877
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Bewegingsensor die LEDs aanzet...

Berichtdoor nicoverduin » 01 Okt 2017, 19:28

Alle gnds moeten aan elkaar worden aangesloten. Ik zou trouwens 13 niet gebruiken. Daar hangt al een led aan
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 26
Geregistreerd: 01 Okt 2017, 14:23

Re: Bewegingsensor die LEDs aanzet...

Berichtdoor Dracul » 01 Okt 2017, 19:36

Dus alle draadjes die naar de GND moeten, aanelkaar solderen? En dan met één pennetje de GND in?

Of zijn daar aparte stekkertjes voor? Ik kan die namelijk niet vinden.

Heb nu de LED op pin 12 aangesloten en in de software aangepast. #weerwatgeleerd :-)

Excuses voor alle vragen, die wellicht voor anderen vanzelfsprekend zijn! Ben hier om te leren, dus alle input is welkom!

Gebruikers-avatar
Berichten: 4877
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Bewegingsensor die LEDs aanzet...

Berichtdoor nicoverduin » 01 Okt 2017, 20:19

Er zitten toch meerdere gnd aansluitingen op de arduino? Maar aan elkaar knopen of solderen mag uiteraard ook
Docent HBO Software Engineering, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 26
Geregistreerd: 01 Okt 2017, 14:23

Re: Bewegingsensor die LEDs aanzet...

Berichtdoor Dracul » 01 Okt 2017, 20:26

Je hebt helemaal gelijk, ik vond er nog één tussen de aansluiting van de bewegingssensor! Maar nu zijn ze wel op, hahahahaha!

Dank je!!!

Berichten: 26
Geregistreerd: 01 Okt 2017, 14:23

Re: Bewegingsensor die LEDs aanzet...

Berichtdoor Dracul » 13 Okt 2017, 20:21

Hallo allemaal,

Inmiddels weer anderhalve week verder (onderwijs, dus erg druk), en inmiddels heb ik de LEDs vervangen door NIET-knipper LEDs... en met behulp van een via-via-kennis dit stukje programmeersel erop los gelaten... en het doet wat het moet doen: zogauw de sensor geactiveerd wordt, dan knipperen beide LEDs...


//the time we give the sensor to calibrate (10-60 secs according to the datasheet)
int calibrationTime = 30;

//the time when the sensor outputs a high impulse
long unsigned int highIn;

//the amount of milliseconds the sensor has to be low
//before we assume all motion has stopped
long unsigned int pause = 5000;

int pirPin = 3; //the digital pin connected to the PIR sensor's output
int ledPin = 12;
int ledPin2 = 10;

/////////////////////////////

//SETUP

void setup(){
Serial.begin(9600);
pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(ledPin2, OUTPUT);
digitalWrite(pirPin, LOW);

//give the sensor some time to calibrate
Serial.print("calibrating sensor ");
for(int i = 0; i < calibrationTime; i++){
Serial.print(".");
delay(1000);
}

Serial.println(" done");
Serial.println("SENSOR ACTIVE");
delay(50);
}

////////////////////////////

//LOOP
void loop(){
//trigger to start when motion is detected
if(digitalRead(pirPin) == HIGH){
highIn = millis();

Serial.println("---");
Serial.print("motion detected at ");
Serial.print(millis()/1000);
Serial.println(" sec");

//until a 'pause' window is detected, keep repeating on/off switches with delays
//delay can be increased to make the blinking less frequently
while (millis() - highIn < pause) {
digitalWrite(ledPin, HIGH);
digitalWrite(ledPin2, HIGH);

delay(50);

digitalWrite(ledPin, LOW);
digitalWrite(ledPin2, LOW);

delay(50);

if(digitalRead(pirPin) == HIGH){
highIn = millis();
}
}

Serial.print("motion ended at "); //output
Serial.print((millis() - pause)/1000);
Serial.println(" sec");
delay(50);
}
}

Berichten: 26
Geregistreerd: 01 Okt 2017, 14:23

Re: Bewegingsensor die LEDs aanzet...

Berichtdoor Dracul » 13 Okt 2017, 20:24

Dat is heel mooi, dat het nu lukt... maar nu komt de kerst op de taart :-)

Ik heb een Velleman Audioshield VMA02 gekocht (https://www.conrad.nl/nl/velleman-vma02-audio-shield-geschikt-voor-arduino-boards-arduino-uno-678477.html?WT.mc_id=google&insert=8J&gclid=EAIaIQobChMI3JbT0Jvu1gIVF-AbCh2iBwaxEAAYASAAEgKtffD_BwE&tid=154592623_8131480063_aud-271263749209:kwd-93431409463&WT.srch=1

Ik zit nu al de hele middag/avond de sketch te bestuderen die op de website van Velleman staat, maar ik kom er niet uit.

De bedoeling is als volgt:

Bewegingssensor detecteert beweging - LEDs beginnen te knipperen - Audio wordt afgespeeld (tegelijkertijd) - bewegingssensor detecteert geen beweging meer - LEDs stoppen en AUDIO stopt.

De sketch die op de site staat is voor een leek onbegrijpbaar, er staan wel wat verwijzingen, maar hoe een en ander gebruikt dient te worden... #geenidee...

Ik heb al via de REC knop op de shield een stukje audio opgenomen, nu moet het nog afgespeeld worden... maar hoe?

Iemand enige ervaring hiermee?

Berichten: 26
Geregistreerd: 01 Okt 2017, 14:23

Re: Bewegingsensor die LEDs aanzet...

Berichtdoor Dracul » 16 Okt 2017, 17:46

Dank allemaal tot zover, voor het meedenken.

Inmiddels zit er een Velleman Audio Shield op, en een vriend van mij heeft meegedacht over het programmeren van het geheel, en kwam met de onderstaande code op de proppen.

Bewegingssensor detecteert beweging - (voorafopgenomen) audio wordt afgespeeld - LEDs beginnen te knipperen - Beweging wordt niet meer gedetecteerd, alles gaat uit.

Audio wordt prima afgespeeld, dat is mooi.
De LEDs gaan wel aan (als je heel goed kijkt) maar geven nauwelijks licht. Iemand enig idee waar dat 'm in zit? Toch een weerstand gebruiken, omdat ze op deze manier toch doorbranden?

De code:

#include <ISD1700.h>

///////Visuals//////
//the time we give the sensor to calibrate (10-60 secs according to the datasheet)
int calibrationTime = 30;

//the time when the sensor outputs a high impulse
long unsigned int highIn;

//the amount of milliseconds the sensor has to be low
//before we assume all motion has stopped
long unsigned int pause = 5000;

int pirPin = 3; //the digital pin connected to the PIR sensor's output
int ledPin = 12;
int ledPin2 = 11; //LET OP! Ik heb deze op 11 gezet, aangezien 10 wordt gebruikt door de audio! Geen idee of dit zomaar kan, wellicht moet je het anders aansluiten...

//////Audio//////
ISD1700 chip(10); // Initialize chipcorder with
// SS at Arduino's digital pin 10


int apc=0;
int vol=0; //volume 0=MAX, 7=min

int startAddr=0x10;
int endAddr =0x2DF;


long unsigned int startPlaytime;
long unsigned int totalPlaytime = 5000; // uitgaande van een opname van 5sec

/////////////////////////////

//SETUP

void setup(){
apc = apc | vol; //D0, D1, D2
apc = apc | 0x50; // D4& D6 select MIC REC
apc = apc | 0x80; // D7 AUX ON, comment enable AUD
apc = apc | 0x100; // D8 SPK OFF, comment enable SPK
apc = apc | 0x800; // D11 EOM ON, comment disable EOM

Serial.begin(9600);
Serial.println("Sketch is starting up");

pinMode(pirPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(ledPin2, OUTPUT);
digitalWrite(pirPin, LOW);

//give the sensor some time to calibrate
Serial.print("calibrating sensor ");
for(int i = 0; i < calibrationTime; i++){
Serial.print(".");
delay(1000);
}

Serial.println(" done");
Serial.println("SENSOR ACTIVE");
delay(50);
}

////////////////////////////

//LOOP
void loop(){
//trigger to start when motion is detected
if(digitalRead(pirPin) == HIGH){
highIn = millis();

Serial.println("---");
Serial.print("motion detected at ");
Serial.print(millis()/1000);
Serial.println(" sec");

//geen idee of een power up nodig is...
chip.pu();

startPlaytime = highIn;
chip.play();

//until a 'pause' window is detected, keep repeating on/off switches with delays
//delay can be increased to make the blinking less frequently
while (millis() - highIn < pause) {
digitalWrite(ledPin, HIGH);
digitalWrite(ledPin2, HIGH);

delay(50);

digitalWrite(ledPin, LOW);
digitalWrite(ledPin2, LOW);

delay(50);

if(digitalRead(pirPin) == HIGH){
highIn = millis();
}

//mijn vermoeden is dat de audio stopt met spelen na de opgenomen tijd is bereikt. Neem aan dat je wil dat de audio in een loop blijft spelen...
if (highIn - startPlaytime > totalPlaytime) {
startPlaytime = highIn;
chip.play();
}
}

chip.stop();

Serial.print("motion ended at "); //output
Serial.print((millis() - pause)/1000);
Serial.println(" sec");
delay(50);
}
}

Er staan hier en daar wat aanwijzingen naar mij toe, omdat hij zelf geen Arduino materiaal heeft. Ik heb ze er voor nu in laten staan, zodat wellicht een en ander voor anderen ook goed te volgen is. De audio speelt nu overigens af, zoals het zou moeten...

Nu alleen die LEDs nog, die te weinig licht geven...

Gebruikers-avatar
Berichten: 255
Geregistreerd: 15 Nov 2015, 11:54

Re: Bewegingsensor die LEDs aanzet...

Berichtdoor Gij Kieken » 16 Okt 2017, 20:48

Welke waarde van voorschakelweerstand gebruik je ?(op 5volt bijv. 470ohm)
Led's aansluiten tussen Pin 11 en gnd alsook tussen Pin 12 en gnd beiden een weerstand 470ohm in serie.

Gebruikers-avatar
Berichten: 255
Geregistreerd: 15 Nov 2015, 11:54

Re: Bewegingsensor die LEDs aanzet...

Berichtdoor Gij Kieken » 16 Okt 2017, 21:43

led.png
led.png (1.33 KiB) 2640 keer bekeken
Ik heb niet echt gans de post terug herlezen om uit te maken welke Led's je nu gebruikt.
Een eenvoudige test kan zijn ,je neemt een batterij 4,5 volt of een adaptor ofwel de Arduino 5volt en gnd (de laatste geniet mijn voorkeur niet)
dit is als voedingsbron, vervolgens een doodgewone Led met voorschakelweerstand(470ohm in serie) en sluit deze aan op de voeding.
Ofwel licht de Led duidelijk op---> Led is ok
Ofwel Led blijft donker---> sluit de twee aansluitpunten andersom aan--->Led licht duidelijk op
Als geen van beiden een duidelijk resultaat geeft--->Led in de prullenmand en een nieuwe
Zo ben je zeker dat de Led Ok is ,de rest is dan code...

VorigeVolgende

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast