Kontrollera allt och spara energi med Arduino (8 / 10 steg)
Steg 8: Programmera Arduino
Ladda upp följande kod: (gör justeringar för stiften du använder)
//////////////////////////////////////////////////////////////////////////////////
//
PERIFERA ELNÄTET MAKT KONTROLL GENOM FJÄRRANALYS MODERKORT POWER LED
-Oscar
/////////////////////////////////////////////////////////////////////////////////
PIN-kod som ansluter till positivt av optisk-isolator
för på knappen leder
(om dessa inte fungerar så prova att byta runt växeln
leder från optisk-isolator till fjärrkontrollen)
int powerOnPin = 10;
samma för knappen off
int powerOffPin = 9;
ingångsstift från moderkortets Powerled (5v)
int inputPin = A0;
int arduinoLedPin = 13.
booleska isPcOn = false;
booleska wasPcOn = false;
void setup()
{
Ställ in- och utgångar
pinMode (inputPin, ingång);
pinMode (powerOnPin, produktionen);
pinMode (powerOffPin, produktionen);
pinMode (arduinoLedPin, produktionen);
}
i slingan, vi kontrollera om datorn är på och ställa in power LED därmed
vi sedan se om effekt status har förändrats och i så fall slå på strömmen på eller av
void loop()
{
ta reda på om datorn är på genom att läsa moderkort LED stift
isPcOn = digitalRead(inputPin);
Visa power status med blinkande (på) eller fast (off) LED
om (isPcOn)
{
ledFlash();
}
annat
{
ledOn();
}
om effekt status skiljer sig innan, power aktivera eller inaktivera
om (isPcOn! = wasPcOn)
{
om (isPcOn)
Power(true);
annat
Power(false);
}
Detta är viktigt så att vi kan berätta om energiläge har ändrats från förra gången
wasPcOn = isPcOn;
}
metod för att slå på eller av strömmen via fjärrkontrollen
void makt (boolean powerCommand)
{
knappen (eller inaktivera) som kommer att pressas
int buttonToPress;
Ange vilken knapp kommer att pressas
om (powerCommand) {
buttonToPress = powerOnPin;
}
annat {
buttonToPress = powerOffPin;
}
Tryck på knappen för 100ms
digitalWrite (buttonToPress, hög);
Delay(100);
digitalWrite (buttonToPress, låg);
}
solid LED att Visa arduino vet datorn är avstängd
void ledOn()
{
digitalWrite (arduinoLedPin, hög);
Delay(100);
}
kort flash led att Visa arduino vet PC är på
void ledFlash()
{
digitalWrite (arduinoLedPin, låg);
Delay(500);
digitalWrite (arduinoLedPin, hög);
Delay(500);
}