Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Potencjometr cyfrowy i AVR

21777
-
-
Posty:137
Rejestracja:3 mar 2004, o 13:49
Potencjometr cyfrowy i AVR

Postautor: 21777 » 28 kwie 2004, o 11:08

witam
czy ktoś mógłby mi naszkicować rozwiązanie problemu sterowania potencjometrami półprzewodnikowymi ( sterowanie trójprzewodową szyną danych ) za pomocą at90S2313 z jednoczesnym wyświetlaniem nastawionych wartości ?
Problemem są odpowiednie sterujące przebiegi czasowe które muszą być generowane przy nastawianiu rezystancji.

pozdrowienia
Marek
Ostatnio zmieniony 27 mar 2007, o 13:58 przez 21777, łącznie zmieniany 2 razy.

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 29 kwie 2004, o 10:31

To zależy jakich potencjometrów używasz.

21777
-
-
Posty:137
Rejestracja:3 mar 2004, o 13:49

Postautor: 21777 » 29 kwie 2004, o 11:54

witam
konkretnie DS1804
pozdrowienia
Marek

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 29 kwie 2004, o 13:41

Dla DS1804 w sumie nie jest to skomplikowane.
Masz:
INC - pin 1
U/D - pin 2
CS - pin 7
Przyłącz te piny do dowolnych pinów portu w procku AVR (nie wiadomo jakiego używasz, np. PORT B), cała mądrość i tak jest zawarta w programowaniu. Aby wysterować potencjometra należy na wejście CS podać z procka stan 0 (inaczej potencjimetr nie zareaguje), na mogę U/D należy podać 0 - będziesz robić ciszej, jak podasz 1 to będziesz robić głośniej, na nogę INC podawać impulsy (każdy impuls zrobi o jedną działkę głośniej lub ciszej).

21777
-
-
Posty:137
Rejestracja:3 mar 2004, o 13:49

Postautor: 21777 » 30 kwie 2004, o 10:22

witam
wielkie dzięki, ale wiedziałem to zanim wysłałem maila. Chodzi mi o programową zasadę generowania przebiegów sterujących, w końcu musza spełniać konkretne warunki. Drugi problem to wyświetlanie nastaw na LCD. Myslałem, że ktoś juz w to sie bawił i ma jakieś konkretne rozwiązania.
pozdrowienia
Marek

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 30 kwie 2004, o 12:46

Sterowanie sygnałami wyboru (CS) i kierunkiem (U/D) należy do zagadnień trywialnych. Sterowanie głośnościa nie należy do skomplikowanych (jeżeli nie ma jakichś kosmicznych wymagań). Wyświetlenie nastaw głośności można zrealizować albo jako liczba wyrażona przykładowo w procentach lub jako pasek.
W czym chcesz to programować?

21777
-
-
Posty:137
Rejestracja:3 mar 2004, o 13:49

Postautor: 21777 » 4 maja 2004, o 07:22

witam
język programowania C++, wyświetlanie wielkości nastawionej wartości MUSI dokładnie odpowiadać uzstawionej rezystancji z jedną cyfrą po przecinku (mam zamiar użyć kostek 10 k)
pozdrowienia
Marek

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 4 maja 2004, o 07:47

Jeżeli "wzmocnienie" potencjometru wyrazisz w procentach (100*liczba nastawionych działek potencjometru/max liczba działek) pomnożysz to przez 10k, to uzyskasz aktualną rezystancję potencjometru. Jeżeli masz do dyspozycji zmienny przecinek, to nie ma problemu z obliczeniami. Wynik pomnóż przez 10 i obetnij do liczby całkowitej. Powstała liczba jest wynikiem w 1 cyfrą po przecinku (przecinek musisz sam wdrukować w odpowiednim mejscu).

21777
-
-
Posty:137
Rejestracja:3 mar 2004, o 13:49

Postautor: 21777 » 4 maja 2004, o 12:20

witam
myślałem o innym sposobie. Licznik rewersyjny góra/dół sterowany dwoma klawiszami. Obsługuje wyświetlacz (wyświetlana zmienna licznika) i sterowane jest impulsami po przyciśnięciu przycisku. Jednakże fizycznie nigdy nie miałem do czynienia z kostkami DS1804 i nie wiem czy po włączeniu ustawiają się na minimum (maksimum)? Jak dobrze zrozumiałem manufacture data sheet po wyłączeniu zasilania kostka się resetuje, chyba że wcześniej dokonaliśmy zapisu ustawień. Czy ktoś ma już doświadczenia w tym temacie ? Drugi problem to wyświetlanie cyfry z przecinkiem.

pozdrowienia
Marek

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 4 maja 2004, o 14:34

Najprościej to jest tak:
Jeżeli wart jest zmienną zawierającą liczbę do wyświetlenia, to

czesc_calkowita=wart / 10 ;
czesc_ulamkowa=wart % 10;

- wyświetlasz zmienną czesc_calkowita na iluś tam miejscach,
- dopisujesz znak przecinka (kropki),
- wyświetlasz zmienna czesc_ulamkowa na 1 pozycji znakowej

i masz wynik.

21777
-
-
Posty:137
Rejestracja:3 mar 2004, o 13:49

Postautor: 21777 » 6 maja 2004, o 08:30

witam
dzięki za podpowiedź, spróbuje w ten sposób , jak będę coś wiedział to dam znać

pozdrowienia
Marek

21777
-
-
Posty:137
Rejestracja:3 mar 2004, o 13:49

Postautor: 21777 » 7 maja 2004, o 12:57

witam
prawie się udało, ale mam następujący problem. Zdefiniowałem zmienną tekst (zawierającą dwie zmienne:czesc_calkowita i czesc_ulamkowa) i chciałbym ,aby te dwie zmienne o których wcześniej rozmawialiśmy (czesc_calkowita i czesc_ulamkowa) były wyświetlane łącznie przedzielone przecinkiem. Jak to zrobić /
pozdrowienia
Marek

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 7 maja 2004, o 13:28

pintf ( "Wynik = %d4.%d1\n" , czesc_calkowita , czesc_ulamkowa ) ;

Jurek Szczesiul
-
-
Posty:175
Rejestracja:10 paź 2003, o 20:44
Lokalizacja:Białystok
Kontaktowanie:

Postautor: Jurek Szczesiul » 7 maja 2004, o 15:41

pintf ( "Wynik = %d4.%d1\n" , czesc_calkowita , czesc_ulamkowa ) ;
Ehm, printf w s2313 ? Zmieści się ?

Pozdrowienia Jurek S.

Awatar użytkownika
gawel
-
-
Posty:683
Rejestracja:24 lis 2003, o 11:19
Lokalizacja:Białystok

Postautor: gawel » 10 maja 2004, o 07:29

Jak nie printf, to trzeba samemu przekonwertować liczbę binarną do znaków i wysłać na wyświetlacz.

Wróć do „AVR/AVR32”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 15 gości