Arduino Polska Forum

Pełna wersja: jak zdublować wyjścia
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
witam
dopiero raczkuje ale jak zdublować wyjścia tak żeby red był na wyjściu 14 i np 20 ....

int red = 14;
int amber = 15;
int green = 16;
int timer = 300;
int timer1 = 100;

void setup(){

  pinMode(red, OUTPUT);
  pinMode(amber, OUTPUT);
  pinMode(green, OUTPUT);
 
}

void loop() {
digitalWrite(red, HIGH); 
  delay(10000);             
  digitalWrite(amber, HIGH);
  delay(1000);           
  digitalWrite(amber, LOW);
  digitalWrite(red, LOW); 
  digitalWrite(green, HIGH);
  delay(15000);             
  digitalWrite(green, LOW);
  digitalWrite(amber, HIGH);
  delay(1000);           
  digitalWrite(amber, LOW);   
 
}
Funkcja digitalWrite(uint8_t, uint8_t) wpisuje wartość na jeden pin.
Jeśli chcesz zmieniać stan dwóch pinów, to albo napisz sobie przeciążenie funkcji,
np:
Kod:
void digitalWrite(uint8_t p1, uint8_t p2, bool stan){
  digitalWrite(p1, stan);
  digitalWrite(p2, stan);
}

Albo pisz na rejestrach. Nałożysz sobie maskę na port i możesz jednym poleceniem ustawiać wartości na wielu pinach jednocześnie.

P.S.
Ach, jeszcze jedno. Pisząc w ten sposób:

int red = 14;
int amber = 15;
int green = 16;
int timer = 300;
int timer1 = 100;

program zajmuje 10 bajtów więcej niż gdybyś napisał to tak:

#define red     14
#define amber 15
#define green  16
#define timer   300
#define timer1 100