digitalRead being ignored?
i've been trying create shutdown raspberry pi. on pi, uart tx pin high, until software shutdown performed, @ point pin goes low. code has 2 parts:
1. wait ir signal switch relay on controlling pi.
2. wait uart tx pin on pi go low, , switch relay off.
the first part works perfectly, every time. second part, doesn't seem doing @ all.
if digitalwrites backward, it's apparently because relay "active low". @ least that's read. last relay used wasn't this.
so there glaring mistake missing?
1. wait ir signal switch relay on controlling pi.
2. wait uart tx pin on pi go low, , switch relay off.
the first part works perfectly, every time. second part, doesn't seem doing @ all.
code: [select]
#include <irremote.h>
#include <irremoteint.h>
// initialize components , variables
int recv_pin = 3; // ir receiver pin
int gpiopin = 7; // pi uart pin
irrecv irrecv(recv_pin);
decode_results results;
unsigned long storedcode = 0x3ce8ad6;
int relaypin = 5; // relay pin
int outputstate = 0;
long lastgpiocheck = 0;
long gpiocheckdelay = 1000;
void setup()
{
serial.begin(9600);
irrecv.enableirin();
digitalwrite(relaypin, high);
pinmode(relaypin, output);
pinmode(gpiopin, input);
}
void loop()
{
// start power on signal check
if ((irrecv.decode(&results)) && (outputstate == 0))
{
if(storedcode == (results.value))
{
serial.print("proper ir signal received. switching relay on.");
digitalwrite(relaypin, low);
outputstate = 1;
}
irrecv.resume();
}
// end power on signal check
// start pi power off check
if ((digitalread(gpiopin) == low) && (outputstate == 1))
{
if ( (millis() - lastgpiocheck) > gpiocheckdelay ) // run after gpio low 1000ms
{
serial.print("raspberry pi powered down. switching relay off.");
digitalwrite(relaypin, high);
outputstate = 0;
lastgpiocheck = millis(); // reset count
}
}
else
{
lastgpiocheck = millis();
}
// end pi power off check
}
if digitalwrites backward, it's apparently because relay "active low". @ least that's read. last relay used wasn't this.
so there glaring mistake missing?
is same problem in other thread? if why start new thread?
how of information provided me , others useful or relevant? don't want have go through again.
...r
how of information provided me , others useful or relevant? don't want have go through again.
...r
Arduino Forum > Using Arduino > Project Guidance > digitalRead being ignored?
arduino
Comments
Post a Comment