• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
jak zdublować wyjścia
#1
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);   
 
}
 
Odpowiedź
#2
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
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości