Skocz do zawartości

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


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

  • 3 tygodnie później...
  • 3 miesiące później...

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.

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

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

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

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

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

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
  • 9 miesiące później...
  • 2 tygodnie później...
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
(edytowany)
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
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.

(edytowany)

@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
(edytowany)
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

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