Skocz do zawartości

Kurs Arduino - #10 - wykresy, liczby losowe, warunki cd.


Komentator

Pomocna odpowiedź

Dnia 26.08.2020 o 07:34, Gieneq napisał:

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
  int Answer = 0;
  switch ((Answer - 1) / 4)
  {
    case 0: case 1:
      pinMode(LED_BUILTIN, OUTPUT);
      break;
    case 2 ... 6:
      pinMode(LED_BUILTIN, OUTPUT);
      break;
    default:
      pinMode(LED_BUILTIN, OUTPUT);
  }
}

@pawomik2 witam na forum 🙂

Sprawdź czy coś z tego będzie pomocne. Pierwsze 2 casy to alternatywa, a ten w środku przedział dla warunków 2 lub 3 lub... lub 6.

 

Tylko że to nie działa

 

#define enP 9
#define enL 8 
#define pr1 4
#define pr2 5
#define lw2 6
#define lw1 7
int bt;

void setup() {
  pinMode(enP, OUTPUT);
  pinMode(enL, OUTPUT);
  pinMode(pr1, OUTPUT);
  pinMode(pr2, OUTPUT);
  pinMode(lw1, OUTPUT);
  pinMode(lw2, OUTPUT);
  Serial.begin(9600);

  
}

void loop() {

 if(Serial.available() > 0){
 bt = Serial.read();
 }
  switch(bt){
  case 1: 
  digitalWrite(pr1, HIGH);
  digitalWrite(pr2, LOW);
  digitalWrite(lw1, HIGH);
  digitalWrite(lw2, LOW);
  digitalWrite(enP, HIGH);
  digitalWrite(enL, HIGH);
  break;
  case 2:
  digitalWrite(pr1, LOW);
  digitalWrite(pr2, HIGH);
  digitalWrite(lw1, LOW);
  digitalWrite(lw2, LOW);
  digitalWrite(enP, HIGH);
  digitalWrite(enL, HIGH);
  break;
  case 3:
  digitalWrite(pr1, HIGH);
  digitalWrite(pr2, LOW);
  digitalWrite(lw1, LOW);
  digitalWrite(lw2, HIGH);
  digitalWrite(enP, HIGH);
  digitalWrite(enL, HIGH);
  break;
  case 4: 
  digitalWrite(pr1, LOW);
  digitalWrite(pr2, HIGH);
  digitalWrite(lw1, HIGH);
  digitalWrite(lw2, LOW);
  digitalWrite(enP, HIGH);
  digitalWrite(enL, HIGH);
  break;
  case 1: case 4:
  
  digitalWrite(pr1, HIGH);
  digitalWrite(pr2, LOW);
  digitalWrite(lw1, HIGH);
  digitalWrite(lw2, LOW);
  digitalWrite(enP, 170);
  digitalWrite(enL, HIGH);
  break;
  case 1: case 3:
  
  digitalWrite(pr1, HIGH);
  digitalWrite(pr2, LOW);
  digitalWrite(lw1, HIGH);
  digitalWrite(lw2, LOW);
  digitalWrite(enP, HIGH);
  digitalWrite(enL, 170);
  break;
  case 2: case 4:
  
  digitalWrite(pr1, LOW);
  digitalWrite(pr2, HIGH);
  digitalWrite(lw1, LOW);
  digitalWrite(lw2, LOW);
  digitalWrite(enP, 170);
  digitalWrite(enL, HIGH);
  case 2: case 3:
  digitalWrite(pr1, LOW);
  digitalWrite(pr2, HIGH);
  digitalWrite(lw1, LOW);
  digitalWrite(lw2, LOW);
  digitalWrite(enP, HIGH);
  digitalWrite(enL, 170);
  break;
  default:
  digitalWrite(enP, LOW);
  digitalWrite(enL, LOW);
 }
}

image.thumb.png.ab065826932377bfc37726c5c7522fce.png
jakby co to jest to program do autka RC na bluetooth 

I dzięki za odp.😀

Link do komentarza
Share on other sites

Cześć, 

przećwiczyłem kurs Arduino I. Nic nie spaliłem, więc nadal jestem w elektronice niedoświadczony.

Kurs bardzo ładnie przemyślany i przygotowany. Podoba mi się równe tempo dawkowania wiedzy. Biorę kurs na kurs Arduino II.

Mam pytanie ogólne o wskazówki -  gdzie szukać informacji o detalach elektronicznych. 

O ile znalezienie referencji języka C w Arduino - łatwo znalazłem na stronie Arduino, to znalezienie referencji zakupionej z materiałami kursowymi płytki Arduino się nie powiodło.

Znalezienie parametrów serwa SG90 - udało się w "internecie", tzn w przypadkowym sklepie.

Gdzie szukać na przykład serwa, o zadanych parametrach ( np, moment 100N*cm)?

Dzięki. Podziękowania.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

@pawelKO dzięki za miły komentarz, cieszę się, że kurs Ci się podobał 😉

Dnia 8.01.2021 o 20:33, pawelKO napisał:

Znalezienie parametrów serwa SG90 - udało się w "internecie", tzn w przypadkowym sklepie.

Niestety w przypadku tego typu elementów tak to właśnie działa - informacje na temat parametrów danego elementu odnajduje się często np. na stronach dystrybutorów. Akurat ten przykład jest jeszcze o tyle specyficzny, że to serwo produkowane jest przez różne firmy i zwyczajnie każdy egzemplarz może być niestety trochę inny.

Dnia 8.01.2021 o 20:33, pawelKO napisał:

Gdzie szukać na przykład serwa, o zadanych parametrach ( np, moment 100N*cm)?

Jeśli szukasz elementu o konkretnych parametrach to musisz zapoznać się z katalogami producentów, możesz też szukać tych informacji w sklepach. Nie ma żadnego zbiorczego miejsca, w którym znajdziesz takie informacje.

Link do komentarza
Share on other sites

Zadanie domowe 10.1
Fajne, tu mój wykres z oświetlaniem z jednej i drugiej strony.

wykr.thumb.png.204d8938aeef98dbf2144e7027a8f663.png

Zadanie domowe 10.4
Myślałem, że uda się to narysować, ale jednak na jednym wykresie liniowym nic nie widać. Tym nie mniej, ciekawa wprawka.

void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(0));
}

boolean war1(int i) {
  //mniejsza od 10 lub  większa od 90
  if (i < 10 || i > 90) {
    return true;
  } else
  {
    return false;
  }
}

boolean war2(int i) {
  //większa od 50, ale nie mieści się w przedziale 70 - 85
  if (i > 50 && !(i >= 70 && i <= 85)) { //choć łatwiej byloby po prostu i>85 :)
    return true;
  } else
  {
    return false;
  }
}

boolean war3(int i) {
  //równa 50, 40, 30 lub 20
  if (i == 50 || i == 40 || i == 30 || i == 20) {
    return true;
  } else
  {
    return false;
  }
}

boolean war4(int i) {
  //mieści się w zakresie od 10 do 40 lub od 60 do 100
  if ((i >= 10 && i <= 30) || (i >= 60 && i <= 100)) { //choć i<=100 jest zawsze prawdziwe w tym programie
    return true;
  } else
  {
    return false;
  }
}



void loop() {
  byte liczba = random(101); //Liczba losowa z zakresu 0-100
  //można też random(100, 500); //Liczba losowa z zakresu 100-499
  Serial.println(String(liczba) + " " + war1(liczba) + " " + war2(liczba) + " " + war3(liczba) + " " + war4(liczba));
  delay(500);
}

Jeszcze jutro quiz i koniec tej części będzie.

P.S. W aktualnej wersji Arduino IDE (1.8.13) jest już poprawiona nazwa i narzędzie rysujące wykres z danych portu szeregowego nazywa się "Kreślarka" (a nie "Monitor portu szeregowego" jak w artykule). Nazwa lepsza bo się nie miesza, ale na pierwszy rzut oka to się trzeba zastanowić, co to znaczy wciąż 😉

 

  • Lubię! 1
Link do komentarza
Share on other sites

@pawelmb fajnie, że działasz z zadaniami domowymi 🙂 

Dnia 20.03.2021 o 23:41, pawelmb napisał:

P.S. W aktualnej wersji Arduino IDE (1.8.13) jest już poprawiona nazwa i narzędzie rysujące wykres z danych portu szeregowego nazywa się "Kreślarka" (a nie "Monitor portu szeregowego" jak w artykule). Nazwa lepsza bo się nie miesza, ale na pierwszy rzut oka to się trzeba zastanowić, co to znaczy wciąż

Dziękujemy za uwagę, gdy będziemy aktualizować kurs skorzystamy z tego.

Link do komentarza
Share on other sites

Te liczby pseudolosowe rzeczywiście nie są losowe. Pierwsze 11 wylosowanych przez mój program w pierwszym przykładzie były dokładnie takie same jak na zrzucie ekranu w kursie.😀

  • Lubię! 1
Link do komentarza
Share on other sites

Dnia 8.05.2022 o 17:45, StefanekP napisał:

@Dustek Fajnie sam jestem niewiele(1 rok) starszy i też jakiś rok temu skończyłem ten kurs. Kurs Arduino II oczywiście jest fajną kontynuacją, ale muszę przyznać, że jest dużo mniej ciekawy od tego- o ile tutaj w każdej części jest coś nowego, o tyle tam jest głównie obługa kolejnych modułów i bibliotek. Przynajmniej do 7 części, dalej nie robiłem, bo nie za bardzo miałem i teraz próbuję się nauczyć programować STMy.

Powodzenia.

Super! Bardzo się ciesze że spotkałem kogoś podobnego do mnie, ponieważ myślę że w  Polsce jest mało młodszych osób interesującym się elektroniką i programowaniem. Co do mojej kontynuacji kursu bardzo jednak chcę zamówić 2 poziom, ponieważ zawsze dodatkowa wiedza, szczególnie ciekawią mnie czujniki PIR. 

  • Lubię! 1
Link do komentarza
Share on other sites

1 godzinę temu, Dustek napisał:

Bardzo się ciesze że spotkałem kogoś podobnego do mnie, ponieważ myślę że w  Polsce jest mało młodszych osób interesującym się elektroniką i programowaniem.

Kwestia farta pewnie. Mi się jakoś tak złożyło w podstawówce, że tych zainteresowanych programowaniem było nas w klasie 4. Może jakieś kółka naukowe w temacie gdzieś w okolicy, by trafić na innych z tym hobby?

Edytowano przez trainee
Link do komentarza
Share on other sites

7 godzin temu, trainee napisał:

Kwestia farta pewnie. Mi się jakoś tak złożyło w podstawówce, że tych zainteresowanych programowaniem było nas w klasie 4. Może jakieś kółka naukowe w temacie gdzieś w okolicy, by trafić na innych z tym hobby?

Właśnie problem jest taki, że u mnie w województwie Opolskim nie ma żadnych kółek, tak samo konkursów.

Link do komentarza
Share on other sites

@StefanekP Niestety im dalej w las tym ciężej. Większość rzeczy później to kwestia zrozumienia jak coś działa i oprogramowanie tego, więc musisz później samemu wymyślać sobie rzeczy do zrobienia, lub szukać całych projektów które wykonujesz i oglądać czyjeś rozwiązania. Czasami nawet różne żeby porównać różne efekty. Coś kroczącego, jakiś samochód - jest kurs budowy robotów. Ja jak się uczyłem to też zrobiłem pierwszy kurs a później odrazu zacząłem robić własne projekty. Np ramie robota na 6 servach i wszystkiego uczylem się na bieżąco. Jak działa i co mam zrobić. To już dużo bardziej czasochłonne projekty bo musisz siedzieć i analizowac jak coś działa, napisać sobie logikę i ją oprogramować. Często jednak się wykorzystuje inne projekty na wzór. 

Edytowano przez Dantey
  • Lubię! 1
Link do komentarza
Share on other sites

20 minut temu, Dantey napisał:

Większość rzeczy później jest podobna więc musisz później samemu wymyślać sobie rzeczy do zrobienia, lub szukać całych projektów które wykonujesz.

@Dantey , tak, to już zauważyłem. Po kursie arduino zrobiłem jedno takie jeździdło z czujnikiem odległości. Ale myślę, że lepiej nauczyć się analizować datasheety niż uczyć się obsługi poszczególnych modułów, bo na rynku jest ich tyle, że wszystkich się nie ogarnie. Tylko na projekty trzeba mieć pomysły, których czasami mi brakuje. Czasami mam tak, że wymyślam sobie jakiś projekt, zastanawiam się nad nim, a jak już wymyślę jak to ma działać to uznaję, że czegoś nie umiem zrobić albo nie ma sensu się za to brać.☹️

Cytat

myślę że w  Polsce jest mało młodszych osób interesującym się elektroniką i programowaniem.

@Dustek, że mało kto w tym wieku interesuje się elektroniką to się zgadzam ale myślę że jest sporo osób interesujących się programowaniem. Jest dużo warsztatów i obozów z programowania(przynajmniej w mojej okolicy, np. politechnika warszawska organizuje dużo obozów naukowych, ale myślę, że w innych miejscach też).

Edytowano przez StefanekP
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.