Sari la conținut
ELFORUM - Forumul electronistilor

Controler selectie surse / volume atenuator


Postări Recomandate

Da, asa e!!! nu stiu ce sa zic, poate cineva mai experimentat, vine cu o idee....eu am sa ma uit putin in soft dar nu cred ca voi da de capata. Eu cand am facut controllerul am schimbat cu 255 cum am recomandat mai devreme, altfel facea exact la fel.

O alta idee ar mai fi sa stergi toate fisierele, mai exact hex-ul si sa recompilezi sa iti genereze alt hex. Mi sa intamplat mie odata ca nu stiam de ce modificarea in bascom nu aparea pe LCD, si am facut asa, pe urma a functionat corect...practic se blocase recompilarea sau ce stiu eu ce alta eroare a fost.

Link spre comentariu

Buna seara.

Azi am avut putin timp sa ma uit inca o data peste basul pe care l-am folosit la inceput pentru a programa atmega8. Cineva spunea intr-un post mai in urma ca schema pentru controler atmega8 si tda7318 este gresita (conectati gresit 2 pini de la display); uitandu-ma mai atent in bas am vazut ca pinii de la atmega se pot configura diferit, in functie de schema( asta nu am stiut cand m-am apucat sa programez atmega8). Am configurat pinii care duceau la display in functie de cablajul meu si acum functioneaza corect si display-ul. Problema pe care o intampin in continuare este faptul ca pentru a putea folosii telecomanda trebuie sa apas repetat pe butoane(nu pot scade sau creste volumul sau altceva daca apas continuu pe buton).Ma puteti ajuta sa remediez aceasta problema? Acum controlerul fuctioneaza cu atmega8 programat de mine cu hexul copiat din celalalt atmega.Nu am avut timp sa citesc tot topicul, dar am nevoie de bas pentru a putea personaliza(daca nu e cu suparare) scrisul si altele. Scopul de a construi inca un controler a fost(in afara faptului ca aveam nevoie de el la o alta statie audio) si de a invata cum se programeaza atmega.

E o chestie veche , unele telecomenzi cand apesi continuu pe un buton emite alt cod .

Stii sa schimbi programul ca pentru apasare scurta pe un buton si pentru apasare continua sa dea aceeasi comanda?

Incarca in atmel ceva de genul :

$regfile = "m16adef.dat"                                    'new atmel atmega16a
'$regfile = "m16def.dat"                                     'old atmel atmega16
$crystal = 8000000                                          ' MUST BE 8Mhz for NEW RC5 to work
$hwstack = 70
$swstack = 70
$framesize = 70
'Mcucsr = &H80
'Mcucsr = &H80
Ddrd = &B11100000                                           ' PD5...PD7 are output, PD0...PD4 are input
Portd = &B00011111                                          ' PD0...PD5 pull-up resistor enable
Ddrb = &B11111111                                           ' PB0...PB7 are output , input relay control
Ddrc = &B11111111                                           ' PC0...PC7 are output , volume R-2R control
'Config Portc = Output                                       'port volume  control  for R-2R relay
'Config Portb = Output                                       'port input audio source selection
Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0
Cursor Off
Config Lcd = 16x2
Cls
Config Rc5 = Pind.3
Enable Interrupts
 
'reserve space for variables
Dim Address As Byte , Command As Byte
Locate 1 , 1
Lcd "Waiting for RC5..."
 
Do
'now check if a key on the remote is pressed
'Note that at startup all pins are set for INPUT
'so we dont set the direction here
'If the pins is used for other input just unremark the next line
'Config Pind.2 = Input
'Print Timer1       disable this line to see the different with the various WAIT constants
Getrc5(address , Command)
 
'we check for the TV address and that is 0
If Address <> 255 Then
  'clear the toggle bit
  'the toggle bit toggles on each new received command
  'toggle bit is bit 7. Extended RC5 bit is in bit 6
   Command = Command And &B01111111
   Locate 2 , 1
  Lcd Address ; " /  " ; Command
End If
Loop
End
-----------------------------------------
dar modifica pentru atmelul tau si pentru Pinul tau de IR si pentru LCD ul tau si apoi :
modifici in programul acela asa:
------------------------------------------------
  Getrc5(address , Command)                                 'read if we have remote ir command
  If Address = 10 Then
     Command = Command And &B01111111
  End If
Select Case Command
'---- this codes are for my remote , change code to your suit ! ----------------
   Case 32 : Call Mmenu                                     'remote command code for CH up
   Case xxx : Call Mmenu                                     'ce cod ai gasit xxx
   Case 33 : Call Mmenu                                     'remote command code for CH down
   Case 160 : Call Mmenu
   Case 17 : Call Mplus                                     'remote command code for Vol +
   Case 145 : Call Mplus
   Case 16 : Call Mminus                                    'remote command code for Vol -
   Case 144 : Call Mminus
   Case 12 : Call Monoff                                    'remote command code for On/Off
   Case 140 : Call Monoff
End Select
------------------------------------------------------
sa verifici si daca nu cumva schimba si adresa !
Editat de danzup
Link spre comentariu

Buna seara.

Sa inteleg ca acel program imi arata pe display codul pe care telecomanda il emite atunci cand apas pe buton? Folosesc atmega8a, deci in loc de "m16adef.dat" vine m8adef.dat? Nu inteleg ce e cu acel Mcucsr, nici cu Config Pind.2 sau Print Timer1; ce fac aceste instructiuni? Am schimbat configuratia pinilor care duc la display in functie de cablajul meu si a rezultat asta:

 
$regfile = "m8adef.dat"                                     'new atmel atmega16a
'$regfile = "m16def.dat"                                     'old atmel atmega16
$crystal = 8000000                                          ' MUST BE 8Mhz for NEW RC5 to work
$hwstack = 70
$swstack = 70
$framesize = 70
'Mcucsr = &H80
'Mcucsr = &H80
Ddrd = &B11100000                                           ' PD5...PD7 are output, PD0...PD4 are input
Portd = &B00011111                                          ' PD0...PD5 pull-up resistor enable
Ddrb = &B11111111                                           ' PB0...PB7 are output , input relay control
Ddrc = &B11111111                                           ' PC0...PC7 are output , volume R-2R control
'Config Portc = Output                                       'port volume  control  for R-2R relay
'Config Portb = Output                                       'port input audio source selection
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
Cursor Off
Config Lcd = 16 * 2
Cls
Config Rc5 = Pind.3
Enable Interrupts
 
'reserve space for variables
Dim Address As Byte , Command As Byte
Locate 1 , 1
Lcd "Waiting for RC5..."
 
Do
'now check if a key on the remote is pressed
'Note that at startup all pins are set for INPUT
'so we dont set the direction here
'If the pins is used for other input just unremark the next line
'Config Pind.2 = Input
'Print Timer1       disable this line to see the different with the various WAIT constants
Getrc5(address , Command)
 
'we check for the TV address and that is 0
If Address <> 255 Then
  'clear the toggle bit
  'the toggle bit toggles on each new received command
  'toggle bit is bit 7. Extended RC5 bit is in bit 6
   Command = Command And &B01111111
   Locate 2 , 1
  Lcd Address ; " /  " ; Command
End If
Loop
End
 
Cand pornesc montajul, nu ar trebui sa imi afiseze prima data pe ecran "Waiting for RC5"? Am incarcat programul in atmega, dar nu-mi apare decat niste linii si niste semne de intrebare. Nu am facut alt montaj, atmega l-am pus tot pe kitul cu tda. Unde gresesc?
Link spre comentariu

$regfile = "m8adef.dat" 'new atmel atmega16a$crystal = 8000000  $hwstack = 70$swstack = 70$framesize = 70Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0Config Lcd = 16 * 2ClsConfig Rc5 = Pind.3Enable InterruptsDim Address As Byte , Command As ByteLocate 1 , 1Lcd "Waiting for RC5..." DoGetrc5(address , Command) If Address <> 255 Then     Command = Command And &B01111111  Locate 1 , 1  Lcd "Found  RC5 comm ..."     Locate 2 , 1   Lcd Address ; " /  " ; Command  Waitms 200End IfLoopEnd

 

 

 

---------------------------------------------------------------------------------------------------

Verifica ca sunt trecuti pinii de la LCD corect in programul Bascom.

Editat de danzup
Link spre comentariu

Va salut.

Abia azi am avut  timp si am incarcat ultimul program postat de domnul @danzup in atmega, dupa configurarea pinilor de la lcd. Programul functioneaza, adresa este 5, iar cand apas butoanele incontinuu codul ramane acelasi (am observat totusi o anomalie la acest program si anume atunci cand apas VOL- afiseaza 17 si cand apas VOL+ afiseaza 16 si e exact invers, altfel la apasarea butoanelor, cand am incarcat programul pentru tda7318 trebuia sa-mi scada volumul cand apasam VOL+). Am modificat adresa cu 5 si am sters celelalte cazuri, lasandu-le doar pe 33, 32, 16, 17 si 12, dar din pacate tot nu functioneaza, aceeasi problema. Am incercat sa las toate codurile din programul original si sa schimb doar adresa, dat tot la fel face. Faptul ca nu mi-a schimbat codul la apasarea incontinuu pe buton si a ramas la fel nu inseamna ca telecomanda mea nu emite alt cod la apasarea incontinuu pe buton?

Link spre comentariu

Va salut.

Abia azi am avut  timp si am incarcat ultimul program postat de domnul @danzup in atmega, dupa configurarea pinilor de la lcd. Programul functioneaza, adresa este 5, iar cand apas butoanele incontinuu codul ramane acelasi (am observat totusi o anomalie la acest program si anume atunci cand apas VOL- afiseaza 17 si cand apas VOL+ afiseaza 16 si e exact invers, altfel la apasarea butoanelor, cand am incarcat programul pentru tda7318 trebuia sa-mi scada volumul cand apasam VOL+). Am modificat adresa cu 5 si am sters celelalte cazuri, lasandu-le doar pe 33, 32, 16, 17 si 12, dar din pacate tot nu functioneaza, aceeasi problema. Am incercat sa las toate codurile din programul original si sa schimb doar adresa, dat tot la fel face. Faptul ca nu mi-a schimbat codul la apasarea incontinuu pe buton si a ramas la fel nu inseamna ca telecomanda mea nu emite alt cod la apasarea incontinuu pe buton?

Da asa e aveti dreptate.

Chestia e foarte ciudata.

Ma mai gandesc ce ar putea fi.

Puteti incerca si cu o alta comanda?

Link spre comentariu
  • 4 săptămâni mai târziu...

Da asa e aveti dreptate.Chestia e foarte ciudata.Ma mai gandesc ce ar putea fi.Puteti incerca si cu o alta comanda?

 Va salut.Astazi am incercat cu o alta telecomanda mai veche: am incarcat programul pe care l-ati postat mai sus in atmega (cel de identificare a adresei si a codului),  adresa la aceasta telecomanda este 0, iar codurile pentru butoane 32, 33, 16, 17, 12. Am modificat in basul pentru controler adresele cu 0, iar restul le-am lasat asa cum erau. Rezultatul - functioneaza doar butonul de meniu, spre deosebire de cealalta telecomanda, la care nu functiona nici un buton la apasarea continua. Am incercat cu ambele telecomenzi in acelasi timp (adresa am lasat-o tot 0) si surpriza, functioneaza perfect, dar nu ma ajuta cu nimic aceasta metoda. Eu tot nu reusesc sa-mi dau seama de cauza acestei probleme.Atasez mai jos basul pe care eu l-am compilat si scris in atmega, desi acum nu mai sunt asa de sigur ca e de la cod.Ma scuzati ca am venit tocmai acum cu un raspuns, dar am fost ocupat cu alte treburi.

7318_ctrl_v13_ATMEGA8.rar

Link spre comentariu
  • 1 an mai târziu...

Buna ziua! La un moment dat, in acest topic a fost postata o varianta de controller cu atmega 8515, pga2310 si encoder la care selectia surselor se facea prin butoane separate (cate un buton pentrubfiecare sursa), iar encoderul era folosit doar pentru reglajul volumului.Poate posta cineva (daca mai are) schema si hexul pentru atmega pentru acea varianta?Va multumesc!

Editat de vlad228
Link spre comentariu
  • 4 luni mai târziu...

Buna ziua! La un moment dat, in acest topic a fost postata o varianta de controller cu atmega 8515, pga2310 si encoder la care selectia surselor se facea prin butoane separate (cate un buton pentrubfiecare sursa), iar encoderul era folosit doar pentru reglajul volumului.Poate posta cineva (daca mai are) schema si hexul pentru atmega pentru acea varianta?Va multumesc

 

Buna seara ,as fi si eu interesat de cele cerute mai sus. Multumesc.

Editat de Robert22
Link spre comentariu
  • 2 săptămâni mai târziu...
  • 1 lună mai târziu...

Asta e ce am eu...de acum cativa ani!!!!

Multumesc frumos pentru programare.

In schema asta apare buton de meniu si doua de plus si minus, pe linga cel de pornit/oprit.

As fi curios ce facilitati sunt din meniu, ar fi fain sa poti scrie in program denumirea fiecarei intrari in parte, ca atunci cind comuti sa apara pe ecran...

Ce tip de senzor infrarosu si ce tip de telecomanda ati folosit?

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări