Męczę się już z tym trochę i mimo prób znalezienia rozwiązania - porażka.
Układ ma być niby nic specjalnego :
- sterownik jakiegoś tam urządzenia,
- oparty na ATMega8,
- ma sterować głównie przekaźnikami, które będą coś tam załączały
(niby proste dwa stany włącz/wyłącz) według schematu :
- wyświetlacz LCD,
- magistrala I2C
- klawiatura 4x4
- no i dwa PWM do sterowania prędkością silników 12V
- kilka wyjść,
- 1 wejście do przycisku (sterowanie stanem niskim).
Program wgrany do mikrokontrolera.
Niby wszystko OK.
No i tu pojawia się problem.
Z tych kilku linijek powyżej wynika, że wszystkie przekaźniki powinny być stale załączone,
a przekaźnik na pinie C.0 i dioda DZ1 sygnalizująca jego stan
mryga na zmianę (włącza się i wyłącza).
Czemu tak się dzieje ?
Nie mogę sobie z tym poradzić.
Są to moje początki zarówno z Bascomem i kontrolerami,
dlatego proszę o wyrozumiałość.
Przykładowy program wygląda następująco :
Układ ma być niby nic specjalnego :
- sterownik jakiegoś tam urządzenia,
- oparty na ATMega8,
- ma sterować głównie przekaźnikami, które będą coś tam załączały
(niby proste dwa stany włącz/wyłącz) według schematu :
- wyświetlacz LCD,
- magistrala I2C
- klawiatura 4x4
- no i dwa PWM do sterowania prędkością silników 12V
- kilka wyjść,
- 1 wejście do przycisku (sterowanie stanem niskim).
Program wgrany do mikrokontrolera.
Niby wszystko OK.
No i tu pojawia się problem.
Z tych kilku linijek powyżej wynika, że wszystkie przekaźniki powinny być stale załączone,
a przekaźnik na pinie C.0 i dioda DZ1 sygnalizująca jego stan
mryga na zmianę (włącza się i wyłącza).
Czemu tak się dzieje ?
Nie mogę sobie z tym poradzić.
Są to moje początki zarówno z Bascomem i kontrolerami,
dlatego proszę o wyrozumiałość.
Przykładowy program wygląda następująco :
$sim ' dyrektywa opuszczania zwłoki (usunąć ten wiersz przy wgrywaniu w chip)
$regfile = "m8def.dat" ' dyrektywa kompilatora o rodzaju procka ATMega 8
$crystal = 8000000 ' określenie kwarca 8 MHz
Config Scl = Portc.5 ' konfiguracja magistrali I2C
Config Sda = Portc.4
Config Lcd = 16 * 2 ' określenie rodzaju wyświetlacza 16 znaków 2 wiersze
Config Lcdpin = Pin , E = Portc.3 , Rs = Portd.4
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2
Config Lcdpin = Pin , Db6 = Portd.1 , Db7 = Portd.0 ' konfiguracja linii do których dołączono wyświetlacz LCD
Config Pinb.0 = Output ' ustawienie końcówek jako wyjścia
Config Pinb.3 = Output
Config Pinb.4 = Output
Config Pinb.5 = Output
Config Pinc.0 = Output
Config Pinc.1 = Output
Config Pinc.2 = Input ' ustawienie końcówki jako wejście
Config Kbd = Portd , Debounce = 25 , Delay = 100 ' konfiguracja Portu D jako używanego przez klawiaturę 4x4
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
' konfiguracja Timer1 jako
' generatora dwóch sygnałów PWM na wyjściach OC1A i OC1B
' Rozdzielczość sygnałów PWM 8 bitów
Shs Alias Portb.0 ' zasilanie stycznika silnika głównego
Silnik_3 Alias Portb.3 ' przypisanie końcówce nazwy
Hamulec Alias Portb.4 ' nazwanie końcówki zasilającej hamulec
Szybko Alias Portb.5 ' stycznik przełączania prędkości silnika głównego
Esc Alias Portc.0 ' nazwanie głównego stycznika zasilania
Silnik_4 Alias Portc.1 ' nazwanie tej końcówki
Zatrzymanie Alias Pinc.2 ' nazwanie końcówki kontrolnej
Set Portc.2 ' dołączenie rezystora podciągajacego (przy sterowaniu masą)
Set Esc ' włączenie stycznika zasilania
Set Hamulec ' ustawienie stanu wysokiego (włączenie) hamulca
Set Silnik_4 ' ustawienie stanu wysokiego (włączenie elektromagnesu)
Set Szybko ' prędkość silnika głównego
Set Silnik_3 ' włączenie silnika 3
Set Shs ' włączenie stycznika silnika głównego
Do ' poczatek pętli programu
Loop ' koniec pętli
End ' koniec programu

