Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Program początkujący linijka LED 10.
#1
Znalazłem program linijki Led na 8 diod Led i w ramach nauki go przerabiam. Zrobiłem na 10 diod Led Red. Świeci z prawej na lewo i z lewej na prawo. Chciałem dodać aby świeciły równocześnie z lewej i prawej po 5 Led do środka i od środka na zewnącz. Coś mi nie wyszło.  Świecą najpierw jedna piątka potem druga.
Kod:
//tworzymy tablicę pinów, pod które podłączone mamy diody LED
// 10 diod led red,10 rezystorów 330 ohm

int leds[] = {2, 3, 4, 5, 6, 7, 8, 9,10,11};
int leds1[] = {11, 10, 9, 8, 7, 6, 5, 4,3,2};
int leds2[] = {2, 3, 4, 5, 6,11, 10, 9, 8, 7};
int leds3[] = {11, 10, 9, 8, 7,2, 3, 4, 5, 6};
//określamy wielkość tablicy jako stałą

#define SIZE 10
int i;

void setup()
{
 Serial.begin(57600);

 //ustawiamy piny jako wyjścia
 for (i = 0; i < SIZE; i++) {
   pinMode(leds[i], OUTPUT);
 }
 for (i = 0; i < SIZE; i++) {
   pinMode(leds1[i], OUTPUT);
 }
  for (i = 0; i < SIZE; i++) {
   pinMode(leds2[i], OUTPUT);
 }
  for (i = 0; i < SIZE; i++) {
   pinMode(leds3[i], OUTPUT);
 }
}


void loop()
{

 //biegnący punkt świetlny
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds[i], HIGH);
   delay(100);
   digitalWrite(leds[i], LOW);
 }

 //Bar graph
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds[i], HIGH);
   delay(100);
 }
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds[i], LOW);
   delay(200);
   
for (i = 0; i < SIZE; i++) {
   digitalWrite(leds1[i], HIGH);
   delay(100);
   digitalWrite(leds1[i], LOW);
 }

 //Bar graph
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds1[i], HIGH);
   delay(100);
 }
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds1[i], LOW);
   delay(500);
 }
  //biegnący punkt świetlny
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds2[i], HIGH);
   delay(200);
   digitalWrite(leds2[i], LOW);
 }
  //biegnący punkt świetlny
 
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds3[i], HIGH);
   delay(200);
   digitalWrite(leds3[i], LOW);
 }
  //Bar graph
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds2[i], HIGH);
   delay(500);
 }
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds2[i], LOW);
   delay(200);
}
//Bar graph
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds3[i], HIGH);
   delay(500);
 }
 for (i = 0; i < SIZE; i++) {
   digitalWrite(leds3[i], LOW);
   delay(200);
 }
 }
 }
Jak nie chcesz odpowiedzieć to nie pisz !!!
Odpowiedz
#2
Spróbuj przemieszać piny w tablicy tak, żeby program zapalał od zewnątrz do wewnątrz czyli np. w takiej kolejności: 11,2,10,3,9,4,8,5,7,6
>> Nie pomagam na PW. Od tego jest forum Uśmiech >> Koniecznie sprawdź: Jak dodawać załączniki

1 problem = 1 wątek
Odpowiedz
#3
Spróbuj takiego kodu:
Kod:
for (i = 0; i < 5; i++) {
  digitalWrite(leds[i], HIGH);
  digitalWrite(leds[10-i], HIGH);
  delay(100);
  digitalWrite(leds[i], LOW);
  digitalWrite(leds[10-i], LOW);
}
Odpowiedz
#4
(23-11-2017, 22:35)tom5555 napisał(a): Spróbuj takiego kodu:
Kod:
for (i = 0; i < 5; i++) {
  digitalWrite(leds[i], HIGH);
  digitalWrite(leds[10-i], HIGH);
  delay(100);
  digitalWrite(leds[i], LOW);
  digitalWrite(leds[10-i], LOW);
}

Próbowałem - wyskakuje błąd 302. Co to jest za błąd?
Jak nie chcesz odpowiedzieć to nie pisz !!!
Odpowiedz
#5
Wrzuć screena jak możesz, bo pierwszy raz o tym słyszę
>> Nie pomagam na PW. Od tego jest forum Uśmiech >> Koniecznie sprawdź: Jak dodawać załączniki

1 problem = 1 wątek
Odpowiedz
#6
(25-11-2017, 17:52)feriar napisał(a): Wrzuć screena jak możesz, bo pierwszy raz o tym słyszę

Arduino:1.8.5 (Windows Store 1.8.10.0) (Windows 10), Płytka:"Arduino/Genuino Uno"
Opcje projektu zmienione, przeładuj całość
Linijka_LED_16:95: error: stray '\302' in program
Linijka_LED_16:95: error: stray '\240' in program
Linijka_LED_16:96: error: stray '\302' in program
Linijka_LED_16:96: error: stray '\240' in program
Linijka_LED_16:97: error: stray '\302' in program
Linijka_LED_16:97: error: stray '\240' in program
Linijka_LED_16:98: error: stray '\302' in program
Linijka_LED_16:98: error: stray '\240' in program
Linijka_LED_16:99: error: stray '\302' in program
Linijka_LED_16:99: error: stray '\240' in program
exit status 1
stray '\302' in program
Ten raport powinien zawierać więcej informacji jeśli w
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"

Dokładnie to pisze.
Jak nie chcesz odpowiedzieć to nie pisz !!!
Odpowiedz
#7
Prawdopodobnie jest to błąd spowodowany użyciem funkcji "kopiuj - wklej", w kodzie znalazły się jakieś dodatkowe znaki ASCII. Podobny problem znalazłem tutaj: https://www.forbot.pl/forum/topics74/bla...t14160.htm
Spróbuj wklepać kod jeszcze raz ręcznie.
Odpowiedz
#8
Można jeszcze spróbować na nowo skompilować program, albo zamknąć Arduino i jeszcze raz uruchomić. Jak to nic nie da to weź cały program skopiuj i wklej do notatnika. Z notatnika wklej go spowrotem do Arduino- to powinno rozwiązać problem formatowania tekstu.
>> Nie pomagam na PW. Od tego jest forum Uśmiech >> Koniecznie sprawdź: Jak dodawać załączniki

1 problem = 1 wątek
Odpowiedz
#9
Daję cały i sprawdzony kod, poprzedni napisałem na szybko i u mnie nie działał poprawnie.
Kod:
int leds[] = {2, 3, 4, 5, 6, 7, 8, 9,10,11};

// the setup function runs once when you press reset or power the board
void setup() {
 // initialize digital pin LED_BUILTIN as an output.
 for (int i = 0; i < 10; i++) {
  pinMode(leds[i], OUTPUT);
}
}

// the loop function runs over and over again forever
void loop() {
 int czas = analogRead(A0);
 for (int i = 0; i < 5; i++) {
 digitalWrite(leds[i], HIGH);
 digitalWrite(leds[9-i], HIGH);
 delay(czas);
 digitalWrite(leds[i], LOW);
 digitalWrite(leds[9-i], LOW);
}
for (int i = 4; i > 0; i--) {
 digitalWrite(leds[i], HIGH);
 digitalWrite(leds[9-i], HIGH);
 delay(czas);
 digitalWrite(leds[i], LOW);
 digitalWrite(leds[9-i], LOW);
}
}

Dodałem sterowanie prędkością migania diod na potencjometrze, podłączonym pod A0 (skrajne nogi do GND i 5V).

A tak to działa: https://www.youtube.com/embed/d6rhOHS5pDA
Odpowiedz


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Przepisany program do miernik V2 na Arduino feriar 0 736 21-04-2017, 00:04
Ostatni post: feriar

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości