Dustek Kwiecień 8, 2022 Udostępnij Kwiecień 8, 2022 przepraszam wszystkich za problem, okazało się że kabelek był w złym miejscu, trzeba jednak uważać 1
Pierunek Czerwiec 14, 2022 Udostępnij Czerwiec 14, 2022 pędzę z pomocą jeżeli komuś pomoże :] PWM wartości miernika nie brać pod uwagę po 10 latach uważa że w gniazdku jest niewiele ponad 200 v :] void setup() { pinMode(6,OUTPUT) ; // sygnał PWM ENABLE 1 digitalWrite(6,HIGH) ; // pinMode(3,OUTPUT) ; // sygnał PWM ENABLE 2 digitalWrite(3,HIGH) ; pinMode(7,OUTPUT) ; // input 1 pinMode(8,OUTPUT) ; // input 2 pinMode(4,OUTPUT) ; // input 3 pinMode(5,OUTPUT) ; // input 4 } void loop() { for(int a = 0 ; a < 255 ; a++) { analogWrite(6, a) ; analogWrite(3, a) ; delay(25) ; digitalWrite(7,HIGH) ; // input 1 silnik 1 digitalWrite(8,LOW) ; // input 2 żółta + digitalWrite(4,LOW) ; // input 3 silnik 2 digitalWrite(5,HIGH) ; // input 4 żółta + } delay(3000) ; for(int b = 0 ; b < 255 ; b++) { analogWrite(6,b) ; analogWrite(3,b) ; delay(25) ; digitalWrite(7, LOW) ; // input 1 silnik 1 digitalWrite(8,HIGH) ; // input 2 czerwona - digitalWrite(4,HIGH) ; // input 3 silnik 2 digitalWrite(5,LOW) ; // input 4 czerwona - } delay(3000) ; } 1
solowkidamian Sierpień 15, 2022 Udostępnij Sierpień 15, 2022 mam pytanie czy zamiast tego kondensatora filtrującego o pojemności 47uF można by było dać kondensator ceramiczny o pojemności 47nF?
H1M4W4R1 Sierpień 15, 2022 Udostępnij Sierpień 15, 2022 9 minut temu, solowkidamian napisał: mam pytanie czy zamiast tego kondensatora filtrującego o pojemności 47uF można by było dać kondensator ceramiczny o pojemności 47nF? Z doświadczenia: zależy od zasilania, z reguły lepiej nie ryzykować. Ewentualnie możesz dać większy. 1 1
lied Wrzesień 14, 2022 Udostępnij Wrzesień 14, 2022 Cześć, czy przypadkiem w kursie nie jest błędnie opisany kierunek obrotów silnika? Z tabeli prawdy wynika, że IN1 - 1 przy IN2 - 0 daje nam silnik w LEWO. Wg rysunków Pin 7 mamy podłączony do IN1 natomiast Pin 8 do IN2. Natomiast w kodzie: digitalWrite(7, LOW); //Silnik nr 1 - obroty w lewo digitalWrite(8, HIGH) czyli IN1 - 0 a IN2 - 1 czyli powinno być obroty w prawo? Będę wdzięczny za rozjaśnienie, czy coś źle rozumuje Na diodach trudniej użyć wyobraźni. 1
Treker (Damian Szymański) Wrzesień 15, 2022 Udostępnij Wrzesień 15, 2022 @lied tak masz rację, gratuluję spostrzegawczości. Szczerze mówiąc prawdopodobnie nawet tego nie powiązałem podczas pisania kursu, bo równie dobrze zamiast lew/prawo mogłem pisać "w jedną"/"w drugą". Szczególnie, że kierunki obrotów zależą też od podłączenia silnika oraz od... tego jak się na niego patrzy. Zapisuję do poprawy przy kolejnej aktualizacji kursu. W kursie budowy robotów temat ten na pewno był opisany lepiej, bo tam kierunki były kluczowe 1
Danyeru Październik 11, 2022 Udostępnij Październik 11, 2022 Takie tam z wczoraj. Zad. 8.1 void setup() { pinMode(6, OUTPUT); //Sygal PWM la silnika 1 analogWrite(6, 230); //Wypelnienie 90% na stale pinMode(5, OUTPUT); //Sygnal PWM dla silnika 2 analogWrite(5, 230); //Wypelnienie 90% na stale pinMode(7, OUTPUT); //Sygnaly sterujace obrotami silnika 1 pinMode(8, OUTPUT); //(diody zielona-niebieska) pinMode(12, OUTPUT); //Sygnaly sterujace obrotami silnika 2 pinMode(13, OUTPUT); //(diody zolta-czerwona) } void loop() { //Do przodu digitalWrite(7, HIGH); //Silnik 1 do przodu digitalWrite(8, LOW); digitalWrite(12, HIGH); //Silnik 2 do przodu digitalWrite(13, LOW); delay(2000); //Skret w prawo digitalWrite(7, HIGH); //Silnik 1 do przodu digitalWrite(8, LOW); digitalWrite(12, LOW); //Silnik 2 do tyłu digitalWrite(13, HIGH);// delay(2000); //Skret w lewo digitalWrite(7, LOW); //Silnik 1 do tylu digitalWrite(8, HIGH); digitalWrite(12, HIGH); //Silnik 2 do przodu digitalWrite(13, LOW); delay(2000); //Jazda do tylu digitalWrite(7, LOW); //Silnik 1 do tylu digitalWrite(8, HIGH); digitalWrite(12, LOW); //Silnik 2 do tylu digitalWrite(13, HIGH); delay(2000); } Zad. 8.2 - for Mając 2 diody na płytce stwierdziłem, że zamigam obiema po kolei. void setup() { pinMode(6, OUTPUT); //Sygal PWM la silnika 1 analogWrite(6, 255); //Wypelnienie 100% na stale pinMode(7, OUTPUT); //Sygnaly sterujace obrotami pinMode(8, OUTPUT); for (int i = 0; i < 5; i++) { //Wykonaj 5 razy digitalWrite(7, HIGH); //Obroty silnika w prawo (dioda niebieska on) digitalWrite(8, LOW); delay(500); digitalWrite(7, LOW); //Silnik zatrzymany (diody off) digitalWrite(8, LOW); delay(500); } for (int i = 5; i < 10; i++) { //Wykonaj 5 razy digitalWrite(7, LOW); //Obroty silnika w prawo (dioda zielona on) digitalWrite(8, HIGH); delay(500); digitalWrite(7, LOW); //Silnik zatrzymany (diody off) digitalWrite(8, LOW); delay(500); } } void loop() {} Zad. 8.2 - while void setup() { int i = 5; //Zmienna pomocnicza pinMode(6, OUTPUT); //Sygal PWM la silnika 1 analogWrite(6, 230); //90% wypelnienia na stale analogWrite(5, 230); //90% wypelnienia na stale pinMode(7, OUTPUT); //Sygnaly sterujace obrotami/diodami pinMode(8, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); while(i > 0) { //Wykonuj poki zmienna wieksza od 0 digitalWrite(7, HIGH); //Wlacz niebieska diode digitalWrite(8, LOW); //Nie wlaczaj zielonej diody - uniknij zwarcia digitalWrite(12, HIGH); //Wlacz zolta diode digitalWrite(13, LOW); //Nie wlaczaj czerwonej diody - unikaj zwarcia delay(500); digitalWrite(7, LOW); //Wylacz wszystkie diody digitalWrite(8, LOW); digitalWrite(12, LOW); digitalWrite(13, LOW); delay(500); i--; //Zmniejsz (dekrementacja) wartosc zmiennej i } } void loop() {} Przy okazji mam zagwozdkę, bo nie wiem, czy mi w międzyczasie coś umknęło. Jak widać powyżej, na pinach PWM ustawiam konkretne wartości. Kiedy ustawiam HIGH diody zachowują się, jakby dostawały niższe wypełnienie (na oko zdecydowanie bliżej 100 niż 255). O czymś zapomniałem w kwestii PWM i musze wrócić do poprzednich lekcji? Czy to normalne? Czy też nienormalne, ale o niczym nie zapomniałem i tak jest, bo tak? 1
Treker (Damian Szymański) Październik 12, 2022 Udostępnij Październik 12, 2022 17 godzin temu, Danyeru napisał: Kiedy ustawiam HIGH diody zachowują się, jakby dostawały niższe wypełnienie (na oko zdecydowanie bliżej 100 niż 255). Nic takiego nie powinno mieć miejsca, ale dla pewności zacznijmy od początku - którego dokładnie programu dotyczą te pytania i jak masz podłączoną diodę?
Danyeru Październik 12, 2022 Udostępnij Październik 12, 2022 2 godziny temu, Treker napisał: Nic takiego nie powinno mieć miejsca, ale dla pewności zacznijmy od początku - którego dokładnie programu dotyczą te pytania i jak masz podłączoną diodę? Nie działało w moich programach. Dzisiaj, świeżym okiem i umysłem widzę, co popełniłem, a co kompilator łyknął. Ustalałem stany LOW/HIGH poprzez analogWrite, przy digitalWrite działa jak ta lala. 1
Danyeru Październik 12, 2022 Udostępnij Październik 12, 2022 (edytowany) I pozostałe zadanka. Zad. 8.3 String liczba = ""; //Zmienna odbierajace dane z UART void setup() { Serial.begin(9600); //Uruchomienie komunikacji UART Serial.println("Wpisz cyfrę z zakresu 1-9"); } void loop () { if(Serial.available() > 0) { //Sprawdzenie czy odebrano dane liczba = Serial.readStringUntil('\n'); //Odczytaj odebrane dane do konca linii i przypisz do "liczba" int gwiazdki = liczba.toInt(); //Zmien typ zmiennej String na int (przepisz "liczba" na "gwiazdki") if (gwiazdki > 0 && gwiazdki <= 9) { //Jezeli "gwiazdki" jest w zakresie 1-9 for (int i = 0; i < gwiazdki; i++) { //Wykonaj tyle razy ile "gwiazdki" Serial.print("* "); //wyswietl gwiazdki delay(100); //Male opoznienie dla efektu } Serial.println(); //Nowa linia gwiazdki = 0; //Wyzerowanie zmiennej Serial.println("Wpisz cyfrę z zakresu 1-9"); } else { Serial.print("Błędna cyfra! \nPodaj cyfrę z zakresu 1-9 \n"); //Komunikat bledu gwiazdki = 0; //Wyzerowanie zmiennej } } } Zad. 8.4 void setup() { pinMode(6, OUTPUT); //Sygnal PWM dla silnika 1 pinMode(5, OUTPUT); //Sygnal PWM dla silnika 2 pinMode(7, OUTPUT); //Sygnal sterujacy silnikiem 1 pinMode(8, OUTPUT); pinMode(12, OUTPUT); //Sygnal sterujacy silnikem 2 pinMode(13, OUTPUT); digitalWrite(7, HIGH); //Silnik 1 do przodu digitalWrite(8, LOW); digitalWrite(12, HIGH); //Silnik 2 do przodu digitalWrite(13, LOW); } void loop() { for (int i = 0; i <= 255; i++) { //Powtarzaj do osiagniecia PWM 255 analogWrite(6, i); //Stopniowo zwiekszaj PWM silnika 1 analogWrite(5, i); //Stopniowo zwiekszaj PWM silnika 2 delay(25); } delay(2000); //Podzialaj przez 2 s for (int i = 255; i >= 0; i--) { //Powtarzaj do osiagniecia PWM 0 analogWrite(6, i); //Stopniowo zmniejszaj PWM silnika 1 analogWrite(5, i); //Stopniowo zmniejszaj PWM silnika 2 delay(25); } delay(2000); //Odczekaj 2s miedzy sekwencjami } Edytowano Październik 12, 2022 przez Danyeru 1
lukasz957 Styczeń 26, 2023 Udostępnij Styczeń 26, 2023 Mój układ nie reaguje w ogóle, podłączyłem wszysyko zgodnie z instrukcja, program też dokładnie taki sam i diody się nie zapalają. W czym moze byc problem? Przesyłem zdjęcia podłączenia Napięcie z baterii dochodzi do układu i z arduino 5v też dochodzi.
Treker (Damian Szymański) Styczeń 27, 2023 Udostępnij Styczeń 27, 2023 @lukasz957 nie wiem czy to kwestia perspektywy zdjęcia, ale wydaje mi się, że powinieneś docisnąć mocniej układ scalony do płytki. Jeśli to nie pomoże to dodaj jeszcze zdjęcia zrobione pod innym kątem i spróbuje przeanalizować cały układ.
lukasz957 Luty 5, 2023 Udostępnij Luty 5, 2023 @Treker dociśnięcie układu nie pomaga, kilka razy od nowa układ składałem i nie ruszy. Można w jakiś sposób sprawdzić mostek (czy jest sprawny)?
Treker (Damian Szymański) Luty 6, 2023 Udostępnij Luty 6, 2023 @lukasz957 jeśli układ nie działa mimo kilku prób to pozostaje reklamacja, bo chyba niestety faktycznie trafiłeś na uszkodzony element - chociaż przyznam, że to pierwsza sytuacja z niedziałającym tym konkretnym układem Napisz proszę na adres [email protected], na pewno szybko uda się wymienić element na nowy. Mam nadzieję, że dalej obejdzie się już bez takich niespodzianek!
lukasz957 Luty 18, 2023 Udostępnij Luty 18, 2023 Chciałbym zapytać o co chodzi z tymi kwadracikami przed wyświetlanym komunikatem, jak się tego pozbyć
Pomocna odpowiedź
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ę »