Go Down

Topic: attiny85 geschakelde verlichting  (Read 415 times) previous topic - next topic

GeertvandenHelm

Ik probeer met een attiny85 een puls te genereren.
Situatie als volgt:

Versterker schakelt in, geeft 5 volt op P2 van attiny
Versterker schakelt uit, 5 volt op P2 valt weg.

Nu wil ik dat er op P3 1 puls van 0.5 seconden komt, digitalwrite = HIGH, zodra 5v op P2 komt, en ook 1 puls van 0.5 seconden zodra 5v wegvalt. Dit om een bc547 + relais aan te sturen.
Dit relais schakelt vervolgens de 433mhz afstandsbediening van mijn plafond ventilator met verlichting

Heb zelf wat geprobeerd, maar werkt helaas niet.
Bij inschakelen attiny schakelt het relais aan, en blijft aan, ongeacht input.
Iemand die ziet wat ik verkeerd doe, en me de goede richting op kan helpen?

Mijn code:
Code: [Select]

// constants won't change. They're used here to set pin numbers:
const int amplifierPin = 3;     // the number of the input pin
const int remotePin =  2;      // the number of the transistor pin

// variables will change:
int amplifierState = 0;         // variable for reading the input status

void setup() {
  // initialize the output pin as an output:
  pinMode(remotePin, OUTPUT);
  // initialize the input pin as an input:
  pinMode(amplifierPin, INPUT);
}

void loop() {
  // check if the amplifier is on:
  amplifierState = digitalRead(amplifierPin);

  // check if the amplifier is on. If it is, the amplifierState is HIGH:
  if (amplifierState == HIGH) {
    // pulse remote:
    digitalWrite(remotePin, HIGH);
    delay (500);}
  // check if the amplifier is off. If it is, the amplifierState is LOW:
  if (amplifierState == LOW) {
    // pulse remote
    digitalWrite(remotePin, HIGH);
    delay (500);}
}

MisterMel

Wat je code nu doet is het volgende:

Wanneer amplifierState HIGH is, zet je de remotePin HIGH.
Wanneer amplifierState LOW is, zet je de remotePin HIGH.

In beide gevallen zet je dus de remotePin HIGH, dat is je probleem.

GeertvandenHelm

Wat je code nu doet is het volgende:

Wanneer amplifierState HIGH is, zet je de remotePin HIGH.
Wanneer amplifierState LOW is, zet je de remotePin HIGH.

In beide gevallen zet je dus de remotePin HIGH, dat is je probleem.
Dat is in principe ook de bedoeling, alleen dient de remote pin telkens een halve seconde high te zijn

MAS3

Ja als je 'm uit wil hebben dan moet je 'm dus uitzetten he...
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

bierens42

Ik weet nog niet heel veel van Arduino, maar denk dat je met 2 problemen zit.

1) Na je delay zal je de remotepin weer LOW moeten zetten
2) Door je loop zal hij altijd aan en uit blijven gaan achter elkaar, omdat je alleen checkt op high en low en bij beide doe je hetzelfde. Je zult hier denk ik nog een variabel bij moeten zetten die checkt of het de eerste keer is nadat je hem aan of uit hebt gezet.

Succes!

MAS3

Dat heb je heel goed gezien, bierens42
Het toont aan dat jij ook aan het leren bent.

Dit is 1 van de zaken die je dus kunt leren uit de blink without delay sketch, maar die daar niet zo specifiek in benoemd zijn.
Dat is waarom ik daar altijd zo op hamer en dat ook zal blijven doen.
Je zult dit in vrijwel iedere sketch gebruiken.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

GeertvandenHelm

Dat heb je heel goed gezien, bierens42
Het toont aan dat jij ook aan het leren bent.

Dit is 1 van de zaken die je dus kunt leren uit de blink without delay sketch, maar die daar niet zo specifiek in benoemd zijn.
Dat is waarom ik daar altijd zo op hamer en dat ook zal blijven doen.
Je zult dit in vrijwel iedere sketch gebruiken.

Heb er de blink without delay sketch bijgepakt.
Ik snap de werking hiervan.
Helaas heb ik als arduino beginner nog te weinig kennis om aan de bestaande sketch een input te koppelen, die als input HIGH is, 1 keer de led laat aangaan, en als de input veranderd naar LOW, de led nogmaals 1 keer aan te laten gaan.

MAS3

#7
Mar 07, 2019, 10:48 pm Last Edit: Mar 07, 2019, 10:49 pm by MAS3
Hoi GeertvandenHelm.

Dat zijn 3 mededelingen waarvan akte.
Had je ook een vraag misschien ?

Net zoals bij het coden (programmeren), moet je ook hier zo duidelijk mogelijk zijn.

Ik vraag me af of je alles in die blink without delay sketch snapt, want daar zit veel meer in dan je in de eerste instantie zou denken.
In dit geval gaat het er om dat je dingen moet gaan onthouden.
En als je de blink without delay sketch nog eens bekijkt, dan zul je zien dat daar ook bepaalde zaken onthouden worden.
Oftewel, je moet bijhouden wat je allemaal al gedaan hebt.
Tot nog toe heb je dat niet gedaan en daarom treedt het 2e probleem wat bierens42 beschreef ongetwijfeld op.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

GeertvandenHelm

Dat zijn 3 mededelingen waarvan akte.
Had je ook een vraag misschien ?

Mijn vraag is wat extra hulp met t schrijven van deze code.
De hulp die al gegeven is waardeer ik zeer, maar is helaas niet voldoende om een beginneling als mij op weg te helpen

Go Up