Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 7 lut 2026, o 11:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 15 sty 2016, o 19:29 
Offline
Nowy

Dołączył(a): 15 sty 2016
Posty: 2
Pomógł: 0

Cześć, mam dziwny problem.
Jestem początkującym i chciałem sobie stworzyć taki prymitywny program z ifem.
Mianowicie, w stanie spoczynku dioda świeci światłem ciągłym. Natomiast gdy do Pinu PD6 podłączę 5V to dioda ma migać co 250ms.

Kod programu wygląda tak :

Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Z tego co rozumiem, PIN działa na takiej zasadzie że gdy podłączymy do tego pinu około ~5V to przyjmuje wartość HIGH czyli 1. Gdy podłączymy wartość zbliżoną do uziemienia ~0V to przyjmuje wartość 0. O ile dobrze rozumiem.

Dlaczego więc dioda zaczyna migać jak podłączę do Pinu PB6 zwykły przewód nawet nie podłączając go potem do + lub do -? Wydaje mi się że program ten powinien działać tak, że gdy połączymy przewód do pinu PD6 i do + to wtedy powinna zacząć migać, a nie gdy się wetknie już jedną część przedmiotu.

Podłączam do portu PD6, dlatego a == 64 (bo 100000 z dwójkowego to 64)



Ostatnio edytowano 15 sty 2016, o 19:43 przez ahahahah, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2016, o 19:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 03 lip 2012
Posty: 238
Pomógł: 5

Dlatego się tak dzieje bo nie podłączając ani do GND czy VCC tego pinu powodujesz stan nie ustalony. Zrób w ten sposób żeby dać rezystor (10K) pulldown czyli do GND od pinu, wtedy tylko te VCC na pinie będzie wyzwalać stan HIGH :)


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2016, o 19:39 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

Kolego może najpierw przeczytaj podstawy, czyli gdzie masz ustawiony pinD6 jako wejście ? Gdzie masz ustawione podciągnięcie pinuD6 do VCC żeby ustalić stan na pinie ? itp. A jeśli chodzi o wstawianie kodu to słuzy do tego syntax C

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2016, o 19:44 
Offline
Nowy

Dołączył(a): 15 sty 2016
Posty: 2
Pomógł: 0

matekogon napisał(a):
Kolego może najpierw przeczytaj podstawy, czyli gdzie masz ustawiony pinD6 jako wejście ? Gdzie masz ustawione podciągnięcie pinuD6 do VCC żeby ustalić stan na pinie ? itp. A jeśli chodzi o wstawianie kodu to słuzy do tego syntax C



Mam ustawiany, tylko nie wstawiałem tego do kodu bo uznałem że wystarczy pokazać część kodu czy nie zrobiłem jakiegoś głupiego błędu. Tak wygląda wcześniejsza deklaracja :
Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

A podciągnięcie do pinuD6 do VCC to sam podłączam kablem i to miało działać tak że jak podłączę kablem pin D6 do Vcc to on miga, a jak nie jest podłączony to myślałem że pind zwróci zero.


xbary napisał(a):
Dlatego się tak dzieje bo nie podłączając ani do GND czy VCC tego pinu powodujesz stan nie ustalony. Zrób w ten sposób żeby dać rezystor (10K) pulldown czyli do GND od pinu, wtedy tylko te VCC na pinie będzie wyzwalać stan HIGH :)

Dzięki, działa :D
Czyli z tego wychodzi, że zawsze jak chce sprawdzać stan jakiegoś pinu to muszę dorzucać mu rezystor z gnd do tego pinu? Nie da się tego jakoś ominąć? Bo przy większej ilości warunków zrobi się pajęczynka



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2016, o 20:00 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3230
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

topic7402.html

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2016, o 20:34 
Offline
Użytkownik

Dołączył(a): 04 cze 2013
Posty: 517
Pomógł: 26

ahahahah napisał(a):

Mam ustawiany, tylko nie wstawiałem tego do kodu bo uznałem że wystarczy pokazać część kodu czy nie zrobiłem jakiegoś głupiego błędu. Tak wygląda wcześniejsza deklaracja :
Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

A podciągnięcie do pinuD6 do VCC to sam podłączam kablem i to miało działać tak że jak podłączę kablem pin D6 do Vcc to on miga, a jak nie jest podłączony to myślałem że pind zwróci zero.

Kolego oczywista oczywistość a jednak masz babola na wstępie chyba że źle przepisałeś
Jeśli chodzi o podciągniecie do Vcc pinu to większość ma namyśli podciągnięcie pinu do VCC przez wewnętrzny rezystor który jest wbudowany w AVR

_________________
Przewodnik|Sterownik akwariowy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO