Arduino met 2 pirren een ledstrip aan en uit laten schakelen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Dylantje2
  • Registratie: April 2007
  • Laatst online: 03-10 15:06

Dylantje2

sorry Bricklayere here :-)

Topicstarter
Beste Allemaal,

Ik ben zoekende naar iets simpels...
Maar het lukt niet me echt, ik denk verkeerd denk ik... _/-\o_ :)
Ik wil graag een ledstrip schakelen met een Arduino. [ heb hem met een mosfet aangesloten [ en dat werkt ]
Aan de arduino moeten 2 pirren hangen, nu 1 maar dat zouden er 2 moeten zijn.
Sketch zou moeten zijn:
pir uit led uit.
1 van de pirren aan, ledstrip xminuten aan.
en weer alles uit.
Moet onder bedrand komen x minuten moet de tijd zijn plassen en terug. 8) 8)
De tijden dat de arduino aan en uit staat schakel ik met domitca, via een KaKu.

Ik heb deze sketch "geleend" van een tutiriol en aangepast maar die doet het niet goed.[ gaat aan en uit dus hij lijkt te werken, alleenIk kan er geen tijd instellen...
En als ik de usb eraf haal, gaan de led niet uit maar blijven half branden.
Dus help me please
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Uses a PIR sensor to detect movement, buzzes a buzzer
// more info here: http://blog.makezine.com/projects/pir-sensor-arduino-alarm/
// email me, John Park, at jp@jpixl.net
// based upon:
// PIR sensor tester by Limor Fried of Adafruit
// tone code by michael@thegrebs.com

 
int ledPin = 12;                // choose the pin for the LED
int inputPin = 2;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 1;                    // variable for reading the pin status

void setup() {
  pinMode(ledPin, OUTPUT);      // declare LED as output
  pinMode(inputPin, INPUT);     // declare sensor as input

  Serial.begin(9600);
}

void loop(){
  val = digitalRead(inputPin);  // read input value
  if (val == LOW) {            // Zorgt dat hij de goed "richting"op gaat High is de pir anders om
  digitalWrite(ledPin, HIGH);  // turn LED ON
//      delay(10);      
    
    if (pirState == LOW) {      // 
     Serial.println("Motion detected!");      // 
      pirState = LOW;
//      delay(10000);
    }
  } else {     digitalWrite(ledPin, LOW); // 
             
    if (pirState == HIGH){      // we have just turned of
    Serial.println("Motion ended!");      // 
    pirState = HIGH;
//     delay(1000000);  // tijd dat lamp aan is
    }
  }
}

zonneboiler, pelletkachel, 36 panels, Atlantic Wpb, pana 5 Kw H, Heishamon, Domoticz, Grafana, Solarmeters, PVO: https://pvoutput.org/list.jsp?id=15321&sid=19520


Acties:
  • 0 Henk 'm!

  • wortelsoft
  • Registratie: Februari 2001
  • Laatst online: 22:45
Je moet eens naar de demo sketch blink without delay kijken. Die laat zien hoe je de timer kunt maken.

Acties:
  • 0 Henk 'm!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 06-10 16:32

SA007

Moderator Tweaking
Houdt je er rekening mee dat // voor een regel betekend dat die regel uitgecomment is en dus niks doet?
Al je delays staan uitgecomment en doen dus niks.
Met deze code zou de code doen wat je beschrijft

Acties:
  • 0 Henk 'm!

  • JoostMod
  • Registratie: Maart 2013
  • Laatst online: 14-08 10:29
Je LED-strip blijft "hangen" omdat als je je USB-kabel uit de arduino trekt. Geeft de arduino geen aan- of uitsignaal meer aan de MOSFET. Dus de MOSFET weet niet wat hij moet doen. Dus gaat ie half branden. Dit kun je evt verhelpen door een hoge weerstand te plaatsen tussen de MOSFET en ground. Maak anders een fotootje van je opstelling.

Acties:
  • 0 Henk 'm!

  • lordprimoz
  • Registratie: November 2013
  • Laatst online: 07-10 17:26
zoals Joostmod al heeft aangegeven zal de Mosfet gaan zweven. Om dit te verhelpen moet je een pull-down weerstand gebruiken.
Dit houdt in dat je een weerstand op dezelfde pin als waar je arduino aan de mosfet zit te plaatsen en deze met de ground te verbinden. Zorg er wel voor dat de ground van de ledstrip is doorverbonden met die van de arduino. Anders heeft het geen zin!