Skocz do zawartości

Kurs Arduino - #1 - podstawy Arduino oraz środowisko


Pomocna odpowiedź

Mam pytanie odnośnie zestawu...

Większość potrzebnych w kursie elementów miałem, dokupiłem brakujące.

Natomiast nie wiem co ze stabilizatorem LM7805...

Mam stabilizator 78M05 w wersji D-PACK.

Czy mogę go wykorzystać zamiast polecanego?

I jak (i jakie) podłączyć kondensatory i czy są niezbędne?

Z góry dzięki za pomoc.

Rigid, raczej nie dasz rady włożyć tego stabilizatora w płytkę stykową. Kondensatory są konieczne. Najlepiej ceramiczne 100nF i jakieś elektrolityczne powyżej 10uF. Dobrze by było, gdybyś sprawdził kurs elektroniki - nie będziesz miał wtedy takich wątpliwości 😉

siemanko,

ja również miałbym pytanie odnośnie zestawu arduino uno plus, czy zestaw zawiera tą plastikową skrzynkę( jest widoczna na zdjęciach ale nie widnieje na liście poniżej, a bardzo by się przydała ;D)?

  • 5 miesiące później...

Witam!

Mam podobny problem do DawidG - program się kompiluje ale już nie wgrywa.

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe2

Problem w niezainstalowanych w pełni sterownikach - których jako niepodpisane mój Windows 7 Ultimate 64-bit nie chce i już. Próbowałem wskazywać mu sterowniki ręcznie z dysku, tak Arduino.ini, Arduin Uno, jak i Arduino Uno R3. Pojawia się "System Windows odnalazł oprogramowanie sterownika dla tego urządzenia, ale napotkał błąd podczas próby zainstalowania". Ponawianie prób po restarcie bez wymagania podpisów nic nie daje, "bdcedit.exe/set nointegritychecks ON" również.

Macie może pomysły, co jeszcze próbować?

Kurojatka, Arduino oryginalne, czy klon?

Zrzuty ekranów z kursu pochodzą właśnie z W7 i nie miałem wtedy żadnych problemów z instalacjami.

Kurojatka, jak masz możliwość, to sprawdź na innym komputerze, jak tam ruszy, to będzie można wyeliminować błąd po stronie sprzętowej.

Podłączyłem na innej maszynie z win8.1. Działa bez zarzutu. U siebie zainstalowałem VirtualBox, a na nim winXP, ale póki co "drugi" system (nie wiem dlaczego) w ogóle nie widzi portów... ktoś wie, jak skonfigurować COMporty w VirtualBox?

Ok, dopisek - może komuś pomoże 😉. Dopadłem starego kompa - dawcę organów. Win7Ultimate, wszystko zainstalowane analogicznie do obecnego sprzętu i... tam działa. Przełożyłem płytkę z USB ale to nic nie dało więc jeżeli ktoś miał podobne objawy do moich to macie pecha. Jedyne, co mogę wydedukować, to problem tkwi gdzieś na płycie głównej komputera. Ja się poddaję, będę testował programy na dawcy organów.

A co do kursu to wielkie dzięki, mój arduino wali teraz morsem po oczach. Pozdrawiam!

Mam problem z (chyba) samą aplikacją Arduino piszę chyba ponieważ podczas sprawdzania programu przez przypadek kliknąłem coś (chyba) w narzędziach i teraz gdy gdy dostaję odp od Arduino pokazują mi się kwadraty itp. jak na zdj. co zrobić? Próbowałem reinstalować aplikacje wraz ze sterownikami USB, ale to nic nie daje. Co dziwne dzieje się tak tylko w jednej części kodu tej przy której pracowałem.

#define Fan 3
#define trigPin 12
#define echoPin 11
String inf;
bool L1 = false;
int predkosc;
int predkosci;
int infx;
bool wyb;
void setup()
{
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 pinMode(Fan, OUTPUT);
 Serial.begin(9600);  //Baudrate: 9600
 Serial.println("Program zresetowany");
}
void loop() {
 if (Serial.available() > 0) { //Czy Arduino odebrano dane
   inf = Serial.readStringUntil('\n');
   infx = inf.toInt();
 } switch (infx) {
   case 1: //Prędkość silnika pierwszego
     wyb = false;
     S1();
     infx = 0;
     break;
   case 2: // lampka
     L();
     break;
   case 3: //proporcjonalnie odlegos do predkosci wiatraczka
     if (wyb == true) {
       predkosc = ODL();
       predkosci = map(predkosc, 0, 250, 100, 255);
       analogWrite(3, predkosci);
       //Serial.println("psl " + predkosci);
       wyb = true;
       delay(1000);
     } else if (wyb == false) {
       wyb = true;
     } break;
     default:
     infx = 0;
 } if (wyb == true) {
   infx = 3;
 }
}
void S1() { //Sterowanie wiatraczkiem
 String Obr;
 String Obr2;
 int Obr1;
 int x = 0;
 //Serial.println("S1"); testy
 while (x != 1) {
   //Serial.println("petla"); testowanie
   if (Serial.available() > 0) {
     Obr = Serial.readStringUntil('\n');
     x = 1;
   }
 }
 if (Obr != Obr2) {
   Serial.println("ps1 " + Obr);
 }
 Obr1 = Obr.toInt();
 //Serial.println(Obr1);  testowanie
 analogWrite(3, Obr1);
 Obr = Obr2;
 x = 0;
}
void L() { // funkcja lamki on/off
 if (L1 == false) {
   digitalWrite(8, HIGH);
   Serial.println("L1 ON");
   L1 = true;
 }
 else if (L1 == true) {
   digitalWrite(8, LOW);
   Serial.println("L1 OFF");
   L1 = false;
 }
}
int ODL() { //odl do szybkosci proprocjonalnie
 int a = 0;
 long czas, dystans;
 digitalWrite(trigPin, LOW);
 delayMicroseconds(2);
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);

 czas = pulseIn(echoPin, HIGH);
 dystans = czas / 58;
 if (dystans <= 250) {
   a = dystans;
   Serial.println("cm "+dystans);
   return a;
 }

}

Problem występuje w case 3. Wiem, że można lepiej to napisać ale to jeden z pierwszych programów jaki piszę.

Zakurek, sprawdziłeś poprawność połączenia USB - wszystko inne działa dobrze? Sprawdź też zwykły, prosty program wyświetlający kilka linijek, wtedy nie ma żadnego błędu?

Treker, sprawdziłem prosty program, działa bez żadnych problemów, a w tamtym programie tylko część kodu nie działa albo tylko część działa. Czy ma znaczenie jaki jest programator wybrany w programie? Może go przez przypadek zmieniłem. W tym momencie jest AVR ISP.

void setup(){
 Serial.begin(9600); //Ustawienie prędkości transmisji
 Serial.println("Witaj na Forbocie!"); //Jednorazowe wysłanie tekstu
}
void loop() {
 delay(5000);
 Serial.println("Minelo 5 sekund!"); //Wysyłanie w pętli
}

Zakurek, akurat nie mam przy sobie Arduino, więc ciężko mi sprawdzić, to w głowie, bo program nie jest zbyt czytelny. Może ktoś inny w międzyczasie znajdzie błąd 🙂 Jedyne, co mogę teraz poradzić, to komentowanie kolejnych bloków programu i uruchamianie go, aż znajdziesz fragment powodujący błędy.

Treker, problem rozwiązany zmieniłem

Serial.println("cm "+dystans);

na

Serial.print("cm ");
   Serial.println(dystans); 

i wszystko jest poprawnie wyświetlane, ale nadal nie rozumiem dlaczego przestało działać Serial.println("cm "+dystans); masz jakieś pomysły co mogło się zepsuć?

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...