Nicander Napisano 7 marca Udostępnij Napisano 7 marca Dzień dobry, mam problem z wyjściem w kontrolerze Atmega 328 (zarówno P jak i PB). Sprawa wygląda tak, że przy wgraniu mojego domyślnego (dość dużego programu) poprzez programator USB-ASP w środowisku Arduino IDE wyjście PD2 ( w Arduino IDE numerowane jako "2") przy stanie niskim daje wartość 0V ale przy stanie wysokim zamiast około 4,7-5V mam 2,4-2,6V. Przez to przekaźnik, który jest sterowany tym wyjściem raz się zapina a raz nie. Przy wgraniu małego programu z prostym przepisanie wejścia na wyjście napięcie jest prawidłowe - widać to też po diodzie którą jest sterowana tym samym wyjściem i świeci dużo mocniej niż wcześniej. Macie pomysł gdzie może być problem? Może przy większym programie, który korzysta z wielu dodatkowych różnych elementów (zegar RTC, przetwornik ciśnienia, PWM, przetwornik temperatury itp) brakuję prądu by to wszystko zasilić poprawnie? A może większy program to dłuższe wgrywanie a co za tym idzie większa szansa na jakieś błędy przy wgrywaniu i niepoprawnie skonfigurowanie tego wyjścia? Jaka jest skuteczność programatora USB-ASP? Jest możliwe, że pomimo komunikatów, że wszystko zostało wgrane i zweryfikowane poprawnie to są jakieś błedy? Dodam jeszcze, że całość mieści się na płytce PCB i wszystkie elementy są w formie SMD. Załączam program i schemat układu. Jestem początkujący w tych tematach, więc proszę o wyrozumiałość w przypadku jakiś błędów. Cała funkcjonalność programu, była wielokrotnie testowana i działa zgodnie z założeniem - problem jest tylko z tym jednym wyjściem. Z góry dziękuję za pomoc. schemat_program.zip Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) 8 marca Udostępnij 8 marca @Nicander witam na forum 🙂 Jeśli dobrze widzę to w Twoim programie brakuje po prostu ustawienia, że ten pin ma być wyjściem (pinMode). Masz to zrobione tylko dla wyjścia z diodą, a przy przekaźniku brak takiego ustawienia - możliwe, że ten sam błąd jest też przy innych wyjściach. Pamiętaj, że domyślnie wszystkie piny są wejściami. Musisz dodać w setup konfigurację typu: pinMode(PrzekaznikPracy, OUTPUT); PS Bardzo ładnie narysowany schemat 🙂 1 Cytuj Link do komentarza Share on other sites More sharing options...
Nicander 9 marca Autor tematu Udostępnij 9 marca Dzięki wielkie! Faktycznie było to ten głupi błąd. Po dodaniu tej linii wszystko działa prawidłowo 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) 9 marca Udostępnij 9 marca @Nicander to się cieszę 🙂 Ale dla pewności zweryfikuj, czy inne piny, które używasz nie muszą być również skonfigurowane jako wyjścia. Nie sprawdzałem tego, a może w przyszłości doprowadzi to do jakiś błędów. Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
Pomocna odpowiedź
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!