 | cimirek 16.04.2023 11:51 Bydliště: Střední Čechy
|
| Barbucha napsal(a): Chybyčka se vloudí. Pořádně jsem nekoukal na zapojení toho rotačního rozdělovač, a naprosto mi uniklo, že řazení je 8 dopředu a dalších 8 nazpět. Takže elektronický rozdělovač s překryvem řešený klasickou logikou není... |
Aha, chybička jo, ale ... až když jsem to uložil do poznámkového bloku, to jsem už nekontroloval (důvěřuj, ale prověřuj) a takto se to namršilo. Jinak v orig. to bylo OK.
Takže přikládám ten kód přímo sem.
Já se sice nemnoho snažím se s ard. skamarádit, ale ..... takže by bylo fajn kdyby to někdo mohl zkontrolovat. Na jiném kódu jsem zjistil, že UI není neomylná.
Zkoušel jsem s PICAXE 008M2 a při vložení do simulátoru tam bylo dost problémů.
...... k o d Arduino mini pro--------
void setup() {
// Nastavení výstupních pinů
for (int i = 1; i <= 8; i++) {
pinMode(i, OUTPUT);
}
}
void loop() {
// Zapínání výstupů 1 až 8
for (int i = 1; i <= 8; i++) {
digitalWrite(i, HIGH); // Zapnutí výstupu i
delayMicroseconds(1250); // Počkejte 0,00125s
if (i < 8) {
digitalWrite(i+1, HIGH); // Zapnutí dalšího výstupu s překryvem 0,00025s
delayMicroseconds(250);
}
digitalWrite(i, LOW); // Vypnutí výstupu i
if (i < 8) {
digitalWrite(i+1, LOW); // Vypnutí dalšího výstupu s překryvem 0,00025s
delayMicroseconds(250);
}
}
// Zapínání výstupů 8 až 1
for (int i = 8; i >= 1; i--) {
digitalWrite(i, HIGH); // Zapnutí výstupu i
delayMicroseconds(1250); // Počkejte 0,00125s
if (i > 1) {
digitalWrite(i-1, HIGH); // Zapnutí dalšího výstupu s překryvem 0,00025s
delayMicroseconds(250);
}
digitalWrite(i, LOW); // Vypnutí výstupu i
if (i > 1) {
digitalWrite(i-1, LOW); // Vypnutí dalšího výstupu s překryvem 0,00025s
delayMicroseconds(250);
}
}
} |
|