SchemaTheek
 
Home Nieuws Forum Schema's Artikelen Magazine Downloads Links Shops Zoeken
 
Controle Paneel
Gebruikersnaam
Wachtwoord
  Onthoud mij
» Wachtwoord?
» Registreren
Site info
» Het Team
» Contact
» FAQ
» Leden
» Upload Archief
Stats
Totaal online: 25
25 gasten
0 leden:
Forum > Diversen > PIC MP3 speler
Henk (NL)
Lid
Berichten: 263
Gepost op woensdag 14 Januari 2015 13:32:16 QuoteWijzig

Ik was al een tijdje op zoek naar een simpele MP3 speler met PIC natuurlijk.
Deze zag ik op www.4dsystems.com.au/product/uLCD_35DT/ maar geen PIC, dus?

Toen kwam deze in beeld www.mikroe.com/mikromedia/pic18fj/
Deze is mooi compleet en klein, alleen de behuizing ontbreekt nog?

Dus ik heb deze rond de kerst aangeschaft, demo's geladen, maar de MP3 demo
was zo beperkt, geen schermafbeelding en kan maar ??n file afspelen, met dezelfde naam!

Andere voorbeelden op LibStock PlayerMp3 en een 2nd generatie,
deze waren geschikt voor de oude generatie pic18fj, ik had de nieuwste!
Het scherm bleef zwart, want er waren diverse I/O lijnen gewijzigd en een andere geluid IC.

Na een paar weken zwoegen met C programma, is het me gelukt om het geheel werkend te krijgen.

Nou kan picbasic wel eens lastig zijn, en ik bijna geen kennis hebt van C van mikroe, dan haal je wat op je hals!
Maar er is ook zoiets van de aanhouder wint (vroeg of laat), toch?

Ik wacht nog steeds op de lessenaarskast, voor m'n armelui's in de andere topic, dus had ik mooi tijd hiervoor.
CARDAN
Lid
Berichten: 215
Gepost op maandag 19 Januari 2015 12:19:39 QuoteWijzig

ik heb er ook van 4dsystems de ulcd70dt maar ja om te communiceren ben ik nog altijd zoek he het lukt me niet via uart
:=(

Henk (NL)
Lid
Berichten: 263
Gepost op dinsdag 20 Januari 2015 12:13:35 QuoteWijzig

Het zou me niet verbazen dat er 'n foutje geslopen is in de documentatie van 4D.
Ik weet niet wat jou probleem is wat betreft de uart.

Maar in de doc. van uLCD_35DT hebben ze een foutieve uitleg gegeven.
Je mag nl. de 3.3Volt extern benutten en tot 100mA belasten.
Als je kijkt in het schema dan zit er een weerstand van 10 Ohm in serie met de 3.3V,
je begrijpt wel als je laat we zeggen 50mA afnemen dat dat een spanningsval geeft van 0,5 Volt!
Dit is teveel, want er blijft maar 2.7V over van de aanwezige 3.3V!

Dus, ja ik heb dan de uLCD_35DT, ik heb dus met moeite die 603 type weerstand van 10 Ohm vervangen
door een van 2,2 Ohm x 50mA = 110mV verlies dit is te doen, en NU werkt m'n SOMO-II goed.
Nu is het zo dat ik alleen 'n 804 type smd weerstand had,
het er op solderen kon net met de grootte van de smd-pads.

Toen ik gister m'n Reflow-controller wilde testen of die kan samenwerken met een 'bakplaat' van 1280Watt,
dat lukte, maar dan moest ik voor de Pre-Heat en Fix-Temp routine aanpassen zodat dit ging werken.
Bleek achteraf nog een foutje in de proton-basic file te zitten en dat kost weer meer tijd; is toch opgelost!

Deze 'bakplaat' wordt dan m'n Pre-Heater, voor oa. smd printen, want de uLCD_35DT print had een power-plane.
aan die smd weerstand het los solderen ging nogal lastig?
Met (de)soldeerbout of IR-heater extra warmte toevoeren boven/naast de smd om deze te verwijderen.
De Pre-Heaters zelf zijn nogal prijzig wat dat betreft.

Het mooie van de 'bakplaat' is dat die mooi vlak is, geen opstaande randen ofzo.
Ik kan dan printen boven zetten tot 40x24cm, het gaas dat ik wil gebruiken heb ook liggen,
kwestie van op maat maken en buigen.
In een Reflow-oventje blijft het lastig om onderdelen te verwijderen.

CARDAN
Lid
Berichten: 215
Gepost op woensdag 21 Januari 2015 21:46:39 QuoteWijzig

nu ff de 70dt laten tellen via een pic16f877a en de com0 dat werkt wel op 19200 bds maar in de pic moet ik dan de N9600 gebruiken wat ook raar is dan wilt ie wel communiceren he henk nu eens kijken of ik een leddigit kan laten tellen ofzo via de pic

CARDAN
Lid
Berichten: 215
Gepost op woensdag 21 Januari 2015 21:48:53 QuoteWijzig

en welke fout had je in de basic file henk???

Henk (NL)
Lid
Berichten: 263
Gepost op donderdag 22 Januari 2015 12:07:51 QuoteWijzig

De Refolow-oven was m'n eerste project, met Proton, ik had ERead en EWrite commando's gebruikt, maar EData niet!
Dus, na het programmeren kwam met ERead eenmalig te hoge waarde mee waardoor de servo-bediening fout ging, ik wist dit achteraf wel, maarja al doende leert men, zal ik maar zeggen.
Met die bakplaat is die servo natuurlijk niet nodig, maar ik had eerst de servo waarden goed moeten zetten, door eenmalig te bedienen.

Ik heb gister de 'desoldeer-curve' uitgesplitst in 4 trappen.
1e opwarmen tot 130graden en waarde aanhouden.
2e verwarmen tot 180graden en idem.
3e terug naar 130 graden en idem.
4e afkoelen naar 22graden en uit.

Dit werkt op 'papier' en programma goed, maar ik zal eerst 'n proef print doen kijken of de waarden van de curve 'n beetje kloppen.
Een zwevende thermokoppel word je nl. niet veel wijzer van

Die 4-traps curve leek me handig als je meerdere componenten moet lossolderen, maar toch een voor een.
Die 4-traps zitten onder 4-toetsen, dus met een enkele toets-druk kan ik die 'curve' selecteren en de eindwaarde blijft gehandhaaft!
Alleen als ik een andere trap selecteer, pakt die weer andere waarden en de laatste daarvan blijft weer staan, enz.

CARDAN
Lid
Berichten: 215
Gepost op dinsdag 10 Februari 2015 00:30:45 QuoteWijzig

DEFINE OSC 4 '4 MHz crystal snelheid
INCLUDE "modedefs.bas" ' Include mode
ADCON1 = 15 ' zet PORT A en PORT E digitaal
TRISB.5 = 0 'zet portb tot 5 op output
LED VAR PORTB.1 ' led op poort b.1
Reset var PORTB.0
displayout var PORTC.6 ' tx port van pic
displayin VAR PORTC.7 ' rx port van pic
controleled VAR BYTE [$6] 'Receive de controle byte van 4dsystems
'val var word
'val = 55

LOW RESET 'reset pin op scherm laag voor reset
PAUSE 20 'tijd voor reset
HIGH RESET 'continue hoog op reset pin
LED = 0 'led op uit
pause 2300 ' tijd voor cls en programma opstart

'serout2 displayout , 84 ,[$55]
MAIN: 'hoofdprogramma

'for val = 2 to 15
pause 500

'zet getal 001 op display
pause 1500

' zet getal 650 op display
' next val
serout2 displayout , 84 ,[$04,$0C,$08]
serout2 displayout ,84, [$02,$00,$0a,$61,$6c,$61,$69,$6e,$20,$77,$79,$62,$6f,$40]


gosub controle

return
controle:

SERIN2 displayin,84,[controleled] 'serial in voor opvraag controle byte
if controleled = $6 then
high led 'aan van led
pause 500 'wacht 0/5 sec
low led 'led bij portb.5
endif
serout2 displayout ,84,[$02,$00,$00,$02]
gosub main 'terug naar main progr

Henk (NL)
Lid
Berichten: 263
Gepost op dinsdag 10 Februari 2015 20:10:03 QuoteWijzig

Is daarmee het probleem opgelost?

CARDAN
Lid
Berichten: 215
Gepost op donderdag 12 Februari 2015 17:11:03 QuoteWijzig

euhhh wel henk met dit kan ik perfect zien als ik een instructie zend dan krijg ik ook een $6 terug in de basic en mijn pic werkt syncroon met de ulcd das een begin nu eeens zoeken hoe ik een variable in leddigit kan steken

CARDAN
Lid
Berichten: 215
Gepost op zaterdag 7 Maart 2015 09:59:36 QuoteWijzig

henk ikke superblij

heb code geschreven in picbasic van melabs om alles te kunnen aansturen van ulcd's je moet infeite weten wat je wil lezen of schrijven hier de var's voor een leddigit te sturen en telkens de checksum van de data dat je verstuurd mee te zenden ook telkens de controle byte $6 opvragen en dan de data in msb en lsb brengen hi en lo byte


LED VAR PORTB.3 ' led op poort b.1
Reset var PORTB.2
displayout var PORTB.0 ' tx port van pic
displayin VAR PORTB.1 ' rx port van pic
controleled VAR BYTE [$6] 'Receive de controle byte van 4dsystems
LOW RESET 'reset pin op scherm laag voor reset
PAUSE 20 'tijd voor reset
HIGH RESET 'continue hoog op reset pin
LED = 0 'led op uit
checkf2 var byte
checkf3 var byte
pause 3500 ' tijd voor cls en programma opstart





msbf2 var word
lsbf2 var word
msbf3 var word
lsbf3 var word



checkf2 =$01^$0f^$00^msbf2^lsbf2 'checksum for f2 status
msbf2 = f2.highBYTE
lsbf2 = f2.LOWBYTE

serout2 displayout ,84, [$01,$0f,$00, msbf2,lsbf2,checkf2]
SERIN2 displayin,84,[controleled] 'serial in voor opvraag controle byte
if controleled = $6 then
high led 'aan van led
'wacht 0/5 sec
low led 'led bij portb.5
endif
checkf3 =$01^$0f^$02^msbf3^lsbf3
msbf3 = f3.highbyte
lsbf3 = f3.lowbyte
serout2 displayout ,84, [$01,$0f,$02, msbf3,lsbf3,checkf3]
if controleled = $6 then
high led 'aan van led
'wacht 0/5 sec
low led 'led bij portb.5
endif






hier een led laten oplichten op je ulcd voor 2sec


serout2 displayout ,84, [$01,$13,$00,$00,$01,$13]
SERIN2 displayin,84,[controleled] 'serial in voor opvraag controle byte
if controleled = $6 then
high led 'aan van led
pause 2000 'wacht 0/5 sec
low led 'led bij portb.5
endif
serout2 displayout ,84, [$01,$13,$00,$00,$00,$12]


werkt zeer goed

CARDAN
Lid
Berichten: 215
Gepost op zaterdag 7 Maart 2015 10:00:50 QuoteWijzig


 
[Bericht gewijzigd door CARDAN op Zaterdag 7 Maart 2015 10:02:50]

pascalbianca
Lid
Berichten: 1434
Gepost op zaterdag 7 Maart 2015 10:41:22 QuoteWijzig

heb je ook eens wat foto's van die mp3 speler project, kunnen we ook eens zien hoe het uitziet.


http://pascalbianca.blogspot.nl/

Active Topics

» De tuin.
» Compressor Afstandsbed...
» Inrichting laadruimte ...
» Subwoofer JBL
» Show je mini projecten
» TDA7265 (Makita werfra...
» Voeding 24V 3A Stynus
» Audi
» Werkplaatsinrichting
» Subaru Outback 2016

» Meer actieve topics

Advertenties

ElektronicaStynus

© 2004-2021 SchemaTheek
Laadtijd: 0.20735 sec.