Skocz do zawartości

Ronaldo71888

Użytkownicy
  • Zawartość

    9
  • Rejestracja

  • Ostatnio

Reputacja

2 Neutralna

O Ronaldo71888

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna
  1. Witam. Również zamieszczam swoje rozwiązania do prac domowych z tego rozdziału: zadania 5.3 nie wrzucam, bo nie jest ono chyba aż tak trudne ; ) Zadanie 5.4 #include <Servo.h> //Biblioteka odpowiedzialna za serwa Servo serwomechanizm; //Tworzymy obiekt, dzięki któremu możemy odwołać się do serwa int pozycja = 0; //Aktualna pozycja serwa 0-180 void setup() { Serial.begin(9600); serwomechanizm.attach(9); //Serwomechanizm podłączony do pinu 9 } void loop() { if( Serial.available() > 0 ){ pozycja = Serial.parseInt(); // wczytuje liczbe Serial.print("Podales liczbe:"); Serial.println(pozycja); if (pozycja > 180){ Serial.println("Podales za duza liczbe, podaj liczbe z zakresu od 0-180"); }else if (pozycja < 0 ) { Serial.println("Podales za mala liczbe, podaj liczbe z zakresu od 0-180"); } else { serwomechanizm.write(pozycja); //Wykonaj ruch } } delay(800); //Opóźnienie dla lepszego efektu pozycja = 0; // pozycja poczatkowa serwomechanizm.write(pozycja); // serwo na pozycji poczatkowej } Zadanie 5.5 #include <Servo.h> // bibliotka odpowiedzialna za serwo int ADCC = 0; // odczyt z ADC Servo serwomechanizm; // tworze obiekt za pomoca korego bede sie odwolywac do serwa void setup() { Serial.begin(9600); serwomechanizm.attach(9); // Serwo podlaczone do pinu 9 } void loop() { ADCC = analogRead(A5); // odczytuje wartosc napiecia Serial.println(ADCC); // wyswietla odczytana wartosc delay(200); ADCC = map(ADCC, 0, 1000, 1,180); // przeskalowanie wartosci Serial.println(ADCC); // wyswietla przekonwertowana wartosc delay(200); serwomechanizm.write(ADCC); // wykonaj ruch delay(1000); } Pozdrawiam ; )
  2. Super. Dzięki za podpowiedź! Teraz już działa. Powiem szczerze, że nawet nie wiedziałem, że coś takiego wystarczy zmienić w terminalu. Myślałem, że jedyne rozwiązanie to poprawienie kodu tak, żeby czytał znak końca linii. Więc nauczyłem się kolejnej rzeczy! Jeszcze raz dzięki! Co do powyższego kodu to teraz wszystko jest okej. ; )
  3. Hejka. Podsyłam swoje rozwiązanie zadanie 4.5. Chodź nie jest ono do końca poprawne ;/ int odczyt_potencjometru = 0; // do odczytania liczby z potencjometru int wczytana_liczba = 0; int roznica = 0; #define LedZiel 9 #define LedZol 8 #define LedCzer 7 #define przycisk 4 #define potencjometr A5 void setup() { Serial.begin(9600); // ustawienie transmisji pinMode(przycisk, INPUT_PULLUP); // wyjscie 4 jako przycisk // ustawienia diod jako wyjscie pinMode(LedZiel, OUTPUT); pinMode(LedZol, OUTPUT); pinMode(LedCzer, OUTPUT); } void loop() { // ustawienie poczatkowe diod przed kazda gra digitalWrite(LedZiel, LOW); digitalWrite(LedZol, LOW); digitalWrite(LedCzer, LOW); int szansa = 3 ; // ile pozostalo szans odczyt_potencjometru = analogRead(A5); Serial.println(odczyt_potencjometru); // do sprawdzania jaka jest liczba (opcjonalne) while (digitalRead(przycisk) == LOW ){ // jesli przycisk nacisniety delay(1000); Serial.println("Podaj licze z zakresu 0 do 1023 +/- 50 " ); delay(1000); if ( Serial.available() > 0 ) { // jesli przekazana jest liczba wczytana_liczba = Serial.parseInt(); Serial.print("Podales liczbe:"); Serial.println(wczytana_liczba); roznica = odczyt_potencjometru - wczytana_liczba; if (roznica <= 50 && roznica >= -50){ Serial.println("Wygrales"); digitalWrite(LedZiel, HIGH); digitalWrite(LedZol, LOW); digitalWrite(LedCzer, LOW); }else{ szansa = szansa - 1; Serial.print("masz prob = "); Serial.println(szansa); digitalWrite(LedZol, HIGH); digitalWrite(LedCzer, LOW); digitalWrite(LedZiel, LOW); if( szansa <= 0 ){ Serial.println("Przegrales"); digitalWrite(LedZol,LOW); digitalWrite(LedZiel,LOW); digitalWrite(LedCzer, HIGH); } } } else { // gdy nie przakazano liczby Serial.println("nie podano liczby"); delay(1000); } } while (digitalRead(przycisk) == HIGH){ // komunitak gdy nie mamy przycsku wduszonego delay(3000); Serial.println("wdus przycisk"); } } Problem jest taki, że jak wpisze jakąś liczbę to Arduino po przejściu wszystkich warunków sam wstawia drugą liczbę wykonuje wszystkie warunki i dopiero potem czeka na wpisanie drugiej liczby. Czy ktoś wie dlaczego tak jest? Ewentualnie czy ktoś ma jakieś uwagi jak ten kod napisać lepiej, poprawniej? Dziękuje za podpowiedzi!
  4. Witam. Miałem niestety dłuższą wymuszoną przerwę w nauce Arduino i przez to skończyłem naukę na 3 rozdziale bez zrobienia pracy domowej. Dzisiaj wznowiłem naukę i chcę się podzielić swoim rozwiązaniem zadanie 2.5*. Może komuś takie rozwiązanie się bardziej spodoba : #define zielona 8 #define czerwona 9 String odebraneDane = ""; int licznik_zielony = 0; int licznik_czerwony = 0; void setup() { Serial.begin(9600); pinMode(zielona, OUTPUT); pinMode(czerwona, OUTPUT); digitalWrite(zielona, LOW); digitalWrite(czerwona, LOW); } void loop() { if(Serial.available() > 0 ){ odebraneDane = Serial.readStringUntil('\n'); if( odebraneDane == "zielona"){ digitalWrite(zielona,HIGH); licznik_zielony = licznik_zielony + 1; if (licznik_zielony % 2 == 0){ digitalWrite(zielona,LOW); } } if( odebraneDane == "czerwona"){ digitalWrite(czerwona,HIGH); licznik_czerwony = licznik_czerwony + 1; if (licznik_czerwony % 2 == 0){ digitalWrite(czerwona,LOW); } } } } Pozdrawiam.
  5. Cześć ! Mam takie pytanie, ponieważ dopiero co zaczynam z Arduino. Czy jak wgram na płytkę jakiś program to czy będę musiał go jakoś wyłączyć jak będę chciał wgrać inny program? Chodzi mi przede wszystkim o dokładanie układów peryferyjnych. Nie zepsuje mi Arduino gdy będę montować inny układ? I czy istnieje możliwość przerwania np. nieskończonej pętli która wypisuje co 5 sekund napis "witaj w Forbocie". Dziękuję za pomoc. Pozdrawiam ; )
  6. Witam! Zastanawiam się dlaczego zmiana tylko kondensatora na mniejszy np. z 1000uF na 220uF wpłynęła na szybkość rozładowania kondensatora i szybkość zapalania, i gaśnięcia diod? Czym to jest spowodowane? Rozumiem, że kondensator 220uF ładuje się tak samo szybko do napięcia 2V i 4V jak kondensator 1000uF? Po naładowaniu obu kondensatorów do 4V od razu są rozładowywane? Więc nie zdążą się naładować na maksa? Czy jednak dalej są ładowane? Dziękuję za odpowiedź. ; )
  7. Napięcie na baterii mam 9,45 V. Nowa bateria, co jest w zestawie. Rzadko używana.
  8. Witam. Jestem nowy w elektronice i bardzo podoba mi się ten kurs. Na pewno będę go kontynuować o 2 poziom. Mam jednak pytanie do Stabilizator LM7805 w praktyce. Napięcie zmierzone woltomierzem przed obciążeniem wynosiło u mnie 5.07 V tak jak się tego spodziewaliśmy. Natomiast gdy podłączyłem obciążenie to napięcia spadło i wynosiło ok. 4.91V. Czy wszystko jest w porządku? Zastanawiam się, ponieważ w kursie było napisane, że w testowanym przypadku, napięcie nie powinno drgnąć nawet o 0,01V. U mnie za to spadło o 0.16V. Załączam zdjęcie pomiaru. Dziękuję za odpowiedź.
  9. Cześć ! Czy będą kolejne kurs? Czy może gdzieś są, a znaleźć ich nie mogę ? ;/
×
×
  • Utwórz nowe...