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



Teraz jest 9 kwi 2026, o 08:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 4 lip 2013, o 11:15 
Offline
Nowy

Dołączył(a): 01 lip 2013
Posty: 7
Pomógł: 0

Witam mam kilka pytań na temat PWM [jestem zielony z języka C dokładnie niebieski bo po książce niebieskiej]
Wymyśliłem sobie pewnego dnia o sterowaniu PWM zakupiłem książkę i potrzebne elementy do programowania przeczytałem do pwm, zrobiłem kilka ćwiczeń . Posiadam Atmega8
Wpadłem na pomysł zrobienia takiego sterownika PWM dla silnika DC czysto dydaktycznie dwa klawisze jeden zwiększa a drugi zmniejsza szerokość impulsu o 10% z 255 to jest 25.5 przy 8 bitowym oraz trzy diody sygnalizujące szerokość impulsów 1=0%,2=50%,3=100%
Obrazek
{Piękna laurka. Prawda?}

Pytania:
Jak dobrać T?
Jak to ugryźć ?
Jak napisać kod?

Chciał bym prosić o konstruktywne rady ale nie o gotowca.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lip 2013, o 12:03 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27450
Lokalizacja: Szczecin
Pomógł: 1045

Bocialdo napisał(a):
Jak dobrać T?

Tu już kolega wyżej podpowiedział a ja dodam, że są różne silniki i czasem po prostu trzeba minimalne wypełnienie dobrać po prostu czysto doświadczalnie - bo np przy zbyt niskim niektóre silniki tylko piszczą zamiast się kręcić ...

Bocialdo napisał(a):
Jak to ugryźć ?

No a zaglądał kolega na płytę DVD do niebieskiej książki ? toż są tam WSZYSTKIE kody źródłowe do ćwiczeń ładnie opracowane z komentarzami itp ... A oglądał kolega lekcje Video na DVD i odpalał Eclipse ? ... coś mi się wydaje że nie ;)

Bocialdo napisał(a):
Jak napisać kod?


jak wyżej - na DVD masz przykłady sterowania za pomocą PWM diodami LED - no to co za problem dodać tranzystor jak pisze kolega wyżej i sterować silnikiem - a i w książce masz przykłady zarówno na sterowanie PWM'em sprzętowym jak i programowym diod LED ... więc w czym problem ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lip 2013, o 13:16 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 cze 2012
Posty: 95
Lokalizacja: Nowa Sól
Pomógł: 1

Jeśli tak mało funkcji ma spełniać to urządzenie, to spokojnie możesz napisać programowy pwm, o maksymalnej wartości np. 200 (str. 229). Poza tym wydaje mi się że jednak wartość 127 będzie to równo 50%, ponieważ mamy maksymalną wartość pwm 255, ale doliczając zerowe wypełni9enie, to mamy łącznie "256 pozycji" pwm, więc środkowa to 127.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2013, o 13:01 
Offline
Nowy

Dołączył(a): 01 lip 2013
Posty: 7
Pomógł: 0

Oto błędy:
**** Build of configuration Release for project PWM ****

make all
Building file: ../main.c
Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=80000UL -MMD -MP -MF"main.d" -MT"main.d" -c -o "main.o" "../main.c"
../main.c:24: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'key_lock'
../main.c:25: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'i'
../main.c: In function 'main':
../main.c:40: error: 'i' undeclared (first use in this function)
../main.c:40: error: (Each undeclared identifier is reported only once
../main.c:40: error: for each function it appears in.)
../main.c:44: warning: implicit declaration of function 'zle'
../main.c:44: error: lvalue required as decrement operand
../main.c:54: error: 'key_lock' undeclared (first use in this function)
../main.c: At top level:
../main.c:76: error: expected identifier or '(' before 'if'
../main.c:79: error: expected identifier or '(' before 'else'
../main.c:83: error: expected identifier or '(' before 'if'
../main.c:86: error: expected identifier or '(' before 'else'
../main.c:89: error: expected identifier or '(' before 'if'
../main.c:92: error: expected identifier or '(' before 'else'
../main.c:95: error: expected identifier or '(' before '}' token
make: *** [main.o] Error 1

**** Build Finished ****




Oto kod jaki napisałem

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



Przyjmę wszystkie słowa krytyki ale w zamian jakaś pomoc xD



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 lip 2013, o 13:15 
Offline
Nowy

Dołączył(a): 01 lip 2013
Posty: 7
Pomógł: 0

zmienione te literówki
to co dać zamiast unit8_t? float???
czy zmienić liczby na 26 ?



Ostatnio edytowano 5 lip 2013, o 13:25 przez Bocialdo, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 lip 2013, o 19:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2012
Posty: 177
Pomógł: 9

sei() nie musi być, bo to odblokowuje przerwania, a ty nie masz, czyli możesz sobie zakomentować



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 lip 2013, o 10:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 208
Lokalizacja: Kraków
Pomógł: 16

Na twoim miejscu nie korzystalbym z liczb typu float. Nie potrzebujesz chyba az takiej dokladnosci.
Wszystkie typy niech beda uint8_t .
Zamiast pisac i>=25.5 poprostu napisz i>=25, i>=127.
To niewielka roznica, a bez korzystania z float.



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: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 5 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