Tak teď jsem si to vyzkoušel v reálu.
Závěr:
Při pokusu o nastavení "digitalWrite(A7,xxxx)" dochází k přesměrování toho příkazu na pin D13. Proto se ti asi zdálo, že je některý z pinů ovládaný pomocí dvou adres. Je to pro mně překvapení, ale je to tak.
Piny A6 a A7 se opravdu nedají nastavovat na výstupy. S tím nic nenaděláš. Viz katalogový list procesoru ATmega328.
Protože u desky "Arduino mini Pro" není osazen USB převodník, je bez problémů možné ovládat i piny Tx a Rx (D0 a D1).
Vyzkoušej si následující program, který mi funguje bez problémů, abychom vyloučili chybu v softwéru:
(Vím, že je to napsané neefektivně, ale je to alespoň snadno pochopitelné)
Kód: Vybrat vše
void setup(void)
{
pinMode(0,OUTPUT);
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
pinMode(A0,OUTPUT);
pinMode(A1,OUTPUT);
pinMode(A2,OUTPUT);
pinMode(A3,OUTPUT);
pinMode(A4,OUTPUT);
pinMode(A5,OUTPUT);
pinMode(A6,OUTPUT);
pinMode(A7,OUTPUT);
}
void loop(void)
{
digitalWrite(0,HIGH);
delay(100);
digitalWrite(0,LOW);
delay(10);
digitalWrite(1,HIGH);
delay(100);
digitalWrite(1,LOW);
delay(10);
digitalWrite(2,HIGH);
delay(100);
digitalWrite(2,LOW);
delay(10);
digitalWrite(3,HIGH);
delay(100);
digitalWrite(3,LOW);
delay(10);
digitalWrite(4,HIGH);
delay(100);
digitalWrite(4,LOW);
delay(10);
digitalWrite(5,HIGH);
delay(100);
digitalWrite(5,LOW);
delay(10);
digitalWrite(6,HIGH);
delay(100);
digitalWrite(6,LOW);
delay(10);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
delay(10);
digitalWrite(8,HIGH);
delay(100);
digitalWrite(8,LOW);
delay(10);
digitalWrite(9,HIGH);
delay(100);
digitalWrite(9,LOW);
delay(10);
digitalWrite(10,HIGH);
delay(100);
digitalWrite(10,LOW);
delay(10);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
delay(10);
digitalWrite(12,HIGH);
delay(100);
digitalWrite(12,LOW);
delay(10);
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(10);
digitalWrite(A0,HIGH);
delay(100);
digitalWrite(A0,LOW);
delay(10);
digitalWrite(A1,HIGH);
delay(100);
digitalWrite(A1,LOW);
delay(10);
digitalWrite(A2,HIGH);
delay(100);
digitalWrite(A2,LOW);
delay(10);
digitalWrite(A3,HIGH);
delay(100);
digitalWrite(A3,LOW);
delay(10);
digitalWrite(A4,HIGH);
delay(100);
digitalWrite(A4,LOW);
delay(10);
digitalWrite(A5,HIGH);
delay(100);
digitalWrite(A5,LOW);
delay(10);
digitalWrite(A6,HIGH); // tohle by nemelo na pinu A6 delat nic
delay(100);
digitalWrite(A6,LOW);
delay(10);
// digitalWrite(A7,HIGH); // Pri pokusu o ovladani pinu A7 se prikaz presmerovava na pin D13
// delay(100);
// digitalWrite(A7,LOW);
// delay(10);
}