Skocz do zawartości

Kurs Arduino - #2 - podstawy programowania, porty I/O


Pomocna odpowiedź

43 minuty temu, Belferek napisał:

Przyjrzyj się swojemu programowi. On nie wyłącza diod w tym samym czasie. Najpierw wyłącza diodę nr 1, a "za chwilę" diodę nr 2 :-).

Rzeczywiście, @Belferek masz rację! Rozumiem o co Ci chodzi. Niepotrzebnie użyłem wyrażenia "w tym samym czasie". Dzięki za spostrzeżenie 👍

  • Lubię! 1
  • 2 tygodnie później...
(edytowany)

hej mam pytanie. wyskakuje błąd, chociaż, według mnie, wszystko zostało dobrze zapisane. 

void setup(){
  Serial.begin(9600);
Serial.println("Witaj w Forbocie");
}

void loop() {
  delay(5000);
  Serial.println("Mineło Pięć sekund");
}

a tak wygląda komunikat o błędzie:

Compilation error: redefinition of 'void setup()'

PS: Zaczynam od nowego tabu

Edytowano przez Ed_konrad

Cześć, mam problem z wykonaniem zadania z gwiazdką. Czy moglibyście zerknąć?  problem z diodą gdy wpiszę komendę "zielone" zaczyna świecić, przy polejnych wpisywaniach "zielone" nie gaśnie. Co może być przyczyną?

#define czerwona 10
#define zielona 9

bool czyZielonaSwieci='false';

String odebraneDane="";

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

pinMode(zielona,OUTPUT);
digitalWrite(zielona,LOW);

pinMode(czerwona,OUTPUT);
digitalWrite(czerwona,LOW);
}

void loop() {
  //bool czyZielonaSwieci='F';

if(Serial.available()>0)
{
  odebraneDane =Serial.readStringUntil('\n');

  if(odebraneDane=="zielona")
  {
    if(czyZielonaSwieci=='true')
    {
      digitalWrite(zielona,LOW);
      czyZielonaSwieci='false';
    }
    else
    {
      digitalWrite(zielona,HIGH);
      czyZielonaSwieci='true';
    }
    
  }

  if(odebraneDane=="czerwona")
  {
    digitalWrite(czerwona,HIGH);
    delay(2000);
    digitalWrite(czerwona,LOW);
  }


  if(odebraneDane!="zielona" && odebraneDane!="czerwona")
  {
    Serial.print("Podaj poprawny kolor! \n");
  }
}
}

 

@drylus witam na forum 🙂 Zacznijmy od poprawienia tego jak korzystasz ze zmiennych typu bool - podczas przypisywania niepotrzebnie korzystasz tam z apostrofów. Aby zmienne te działały poprawnie musisz do nich przypisywać bezpośrednio false lub true.

  • Lubię! 1
  • 1 miesiąc później...

Jestem kompletnie zielony w sprawie programowania, mam trochę podstawowej wiedzy z elektroniki.

Zastanawiam się jak rozwiązać "Zadanie domowe nr 1.2" dochodząc do tego miejsca w kursie, w którym jest to zapisane.

Nie bardzo rozumiem jak z wiedzy zapisanej do tego miejsca można rozwiązać to zadanie. Wygląda na to, że aby rozwiązać to zadanie trzeba posiadać dodatkową wiedzę. Można gdzie na doczytać materiał o programowaniu aby rozwiązać to zadanie samodzielnie. 

51 minut temu, Andrew25 napisał:

Nie bardzo rozumiem

A na czym utknąłeś? Nie wiesz jak podłączyć diodę? Nie wiesz jak włączyć / wyłączyć LED? Program to zbiór "instrukcji" wykonywanych w określonej kolejności. Postaraj się przeanalizować dostępne w kursie programy by zrozumieć co oznacza każda linijka programu. No a jeśli czegoś nie rozumiesz to pytaj - tylko konkretnie.

Problem pojawił się na początku. "Zadanie domowe nr 1.2 Wybierz wolny pin i podłącz do niego drugą diodę. Napisz program, który będzie włączał obie diody LED. Następnie napisz program, w który sprawi, że obie diody będą migały na zmianę."

void setup() {
pinMode(8, OUTPUT); //8 jako wyjscie
pinMode(7, OUTPUT); //7 jako wyjscie
}


void loop () 
  {
  digitalWrite(8, HIGH); //Włączenie diody
  delay(3000); // 
  digitalWrite(8, LOW); //Wyłączenie diody
  delay(1000); //Odczekanie jednej sekundy
  if (digitalRead(8) == LOW) { //Jeśli 8 niski
    digitalWrite(7, HIGH); //Włącz diodę
    delay(3000);
    digitalWrite(7, LOW); //Wyłączenie diody
  delay(100); //Odczekanie jednej sekundy
  
  }
}

Napisałem coś takiego, ale to na podstawie dalszej części tego odcinka.  Wiem, że to co zrobiłem to strasznie nieporadne, że powinienem poczytać choćby o if, else i o wielu innych.  Czy na portalu jest ta wiedza?

No dobrze. Zadanie mówi o dwóch wersjach programu:
a) program włącza obie LED
b) LED migają na zmianę.

Którą wersję realizuje Twój program?

7 minut temu, Andrew25 napisał:

powinienem poczytać choćby o if, else i o wielu innych.  Czy na portalu jest ta wiedza?

Oczywiście - o warunku if - else masz napisane zaraz pod treścią zadania - nie zauważyłeś? W samym Arduino IDE znajdziesz także pomoc w POMOC - REFERENCJE. W sieci także znajdziesz wiele literatury na temat podstaw programowania w języku C.

(edytowany)

Realizuje tą drugą część zadania.

Widziałem, ale tak jak napisałeś musze poczytać o programowaniu w C. Pozostaje mi poszukać literatury w sieci.

Szukać programowania w C czy C++? 

 

Edytowano przez Andrew25
(edytowany)

Jak było pierwsze zadanie z przyciskiem to od razu mam włączoną lampkę i gdy klikam nic się nie dzieje a jak odłączę przycisk to dioda mi gaśnie.
@SOYER pomożesz?

 

 

Edytowano przez AcziYT

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...