Newbie vraagt: wat doe ik fout?
4 berichten
• Pagina 1 van 1
Newbie vraagt: wat doe ik fout?
Ik wil een relais schakelen op pin 2.
Ik gebruik een RFID kaartlezer en wil het volgende bewerkstelligen:
Als een bepaalde tag wordt gelezen, pin 2 hoog. Wordt dezelfde tag nogmaals gelezen, pin 2 laag.
Alles werkt wel, maar dat wisselen van hoog naar laag niet.
Ik dacht het alsvolgt op te lossen:
if (relay == HIGH)
{
digitalWrite(relay, LOW);
}
if (relay == LOW)
{
digitalWrite(relay, HIGH);
De variabele relay is wel goed geïnitieerd en werkt wel, alleen het wisselen van hoog naar laag (en omgekeerd) niet.
Bedoeling is om een alarm aan/uit te zetten.
Kortom wat doe ik fout?
Ik gebruik een RFID kaartlezer en wil het volgende bewerkstelligen:
Als een bepaalde tag wordt gelezen, pin 2 hoog. Wordt dezelfde tag nogmaals gelezen, pin 2 laag.
Alles werkt wel, maar dat wisselen van hoog naar laag niet.
Ik dacht het alsvolgt op te lossen:
if (relay == HIGH)
{
digitalWrite(relay, LOW);
}
if (relay == LOW)
{
digitalWrite(relay, HIGH);
De variabele relay is wel goed geïnitieerd en werkt wel, alleen het wisselen van hoog naar laag (en omgekeerd) niet.
Bedoeling is om een alarm aan/uit te zetten.
Kortom wat doe ik fout?
Advertisement
Re: Newbie vraagt: wat doe ik fout?
met digitalWrite(relay, LOW);
maak je de variabele 'relay' niet LOW.
maak je de variabele 'relay' niet LOW.
- Code: Alles selecteren
if (relay == HIGH)
{
digitalWrite(relay, LOW);
relay = LOW;
}
if (relay == LOW)
{
digitalWrite(relay, HIGH);
relay = HIGH;
Re: Newbie vraagt: wat doe ik fout?
besides als relay een pin is dan is het of 1 of 0 dus pin 1 of 0 en dat is serieel ?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Newbie vraagt: wat doe ik fout?
pjh schreef:met digitalWrite(relay, LOW);
maak je de variabele 'relay' niet LOW.
- Code: Alles selecteren
if (relay == HIGH)
{
digitalWrite(relay, LOW);
relay = LOW;
}
if (relay == LOW)
{
digitalWrite(relay, HIGH);
relay = HIGH;
Ik weet niet of dit inmiddels is opgelost maar in deze vorm krijg je onvoorspelbare situaties.
Om het relay om te gooien kun je gewoon het volgende gebruiken:
- Code: Alles selecteren
digitalWrite(relay, !digitalRead(relay));
Daarnaast zou ik onderscheid maken tussen variabelen in je programma en pinnen etc.
bijvoorbeeld:
pinRelay voor de pin
relay voor de variabele als je die echt nodig hebt
Zelf zou ik voor harde definities die toch niet veranderen zoals de pin van de relay het volgende gebruiken
- Code: Alles selecteren
#define PINRELAY 3 // relay op pin 3
unsigned int relay; // variabele relay
//
// omgooien relais
//
digitalWrite(PINRELAY, !digitalRead(PINRELAY));
4 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 16 gasten