pic dimmer?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
basmicke
Inlägg: 63
Blev medlem: 11 juli 2007, 15:25:04
Ort: Munkfors

pic dimmer?

Inlägg av basmicke »

Hej.
skaffade mig en velleman vm111 pic programmerare, fattar knappt något om den än men har börjat att förstå lite om hur den fungerar. så jag undrar om det är nån som vet vart man kan få tag på koder hellst på svenska och sen så undrar jag om man kan skapa någon typ dimmer funktion med en pic prossesor?
//Mikael
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Koder till vadå ?
Dimmer av vadå ?

Svenska kan du i princip glömma. Eller i alla fall att ha det
som ett krav, alla datablad o.s.v är på engelska.
Vad är problemet med engelska ?
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Grattis! Dags att börja bygga nyttoprylar då! :)

Vad menar du med "koder"?

Är det källkod du menar så är det lämpligen google som gäller. Icecap och Sodjan här på forumet har också lite fria grejor upplagda.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Japp, och mina hittar du under http://www.jescab.se/Info_PIC.html
Ännu inte speciellt mycket man "jag har en plan"... :-)
basmicke
Inlägg: 63
Blev medlem: 11 juli 2007, 15:25:04
Ort: Munkfors

svar

Inlägg av basmicke »

engelskan är de inge större fel på det kan bara vara lite svårt att fatta riktigt rätt ibland när dem använder lite svåra termer.
med en dimmer så menade jag att man har kanske 6 dioder som det är på min "porv" programmerare, om man kunde få dem att dimmra in t.ex 1 och en och sedan dimmra ut.
är väldigt ny inom det här så det är därför som jag kanske använder konstiga ord som kode när jag menar källkoder elller liknande.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Här har du ett exempel på hur man kan styra 200 LEDś med en PIC10F.

http://web.telia.com/~u95601791/dimmer.png

[/img]

Kod: Markera allt


	list      p=10F202       ; list directive to define processor

	#include <p10f202.inc>    ; processor specific variable definitions







;Center LED on GP0

;Two seis LED´s on GP1 and GP2

;on/off on GP1

;down on GP0

;up on GP3

;out on GP2





;	__CONFIG _CP_OFF & _WDT_OFF & _MCLRE_OFF & _IntRC_OSC

;******************************************************************************

;Reset Vector 

;******************************************************************************

duty 	EQU 0x10

k	 	EQU 0x11

j	 	EQU 0x12

i		EQU 0x13

;*************************************

	org 0x3FF

	org 0x00

	movwf OSCCAL

	bcf OSCCAL,FOSC4

	movlw b'10000000'

	option

	movlw b'11111011'

	tris GPIO

	movlw b'11110011'

	movwf CMCON0

	movlw 0x80

	movwf duty

	goto MAIN

; ====================================



MAIN

	call dutyout

	movf duty,w

	btfss GPIO,1

	movlw 0x00

	btfss GPIO,3

	incf duty,f

	btfss GPIO,0

	decf duty,f

	goto MAIN

	

	

dutyout

	movf duty,w

	movwf i

	movwf j

	bsf GPIO,2

wait1

	decfsz i

	goto wait1

	bcf GPIO,2

wait2

	incfsz j

	goto wait2

	decfsz k

	goto dutyout

	return		

	

	END
EDIT: Varken det vackraste schemat eller den vackraste koden, men den gör jobbet och ger en 0-97% dimmning i 31 steg och knappinterface har jag för mig, eller om jag minskade max duty lite mer, minns inte, och orkar inte titta igenom koden....
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Du ska få ett hett tips...

Glöm det där med att dimma LEDs.
Försök att få dom att blinka bara.

*Sen* kan du fundera på att dimma dom...
basmicke
Inlägg: 63
Blev medlem: 11 juli 2007, 15:25:04
Ort: Munkfors

Inlägg av basmicke »

att få dem å blinka tror jag att jag fattar redan det finns det ju redan demon på. tackar så mkt för koden får kolla om den funkar lite senare.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Det är ingen "bra" kod för pwm. Normalt kör man med timerinterupt, men för en PIC10F.... tja, då kan man lika gärna köra programloops delayer - den skall ju inte göra så mycket annat än att generera en 12kHz PWM....

Sättet för att få konstant frekvens här är att ha samma värde som man i on-loopen incrementerar och i off-loopen decrementerar så oaktat vilket värde som dutyvariabeln är satt till så kommer periodtiden bli samma.

Avstutsningen av knapparna blir i och med att man kör keyscan med omkring 40Hz och på det viset för stegfunktionen då det tar 255/40 sekunder att dimma från min till max. Detta program tillåter rollover, men för aktuell applikation är det nästan en fördel.
basmicke
Inlägg: 63
Blev medlem: 11 juli 2007, 15:25:04
Ort: Munkfors

Inlägg av basmicke »

ok???
då har jag en bra fråga till er eliter på pic programmering vart finns det förklaringar för nybörjare???
har en pic16f267 tror jag det var... är det samma källkoder för alla eller?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Koden i Bengt-re's exempel är inte helt bra som exempel.
Jag är övertygad om att du inte kör en "Base-line" PIC, utan
en mer normal "Midrange" PIC ur PIC16 serien. Dessutom (som
Bengt påpekade) så programmerar men lite annorlunda på en
processor med mer resurser än PIC10.

Men Bengt har beskrivit principen så det är väl bara att hacka på.

Kör en timer med PWM frekvensen x antal steg i som det ska dimmas.
Använd ett par räknade för on/off tiderna. Är det flera utgångar
räcker med en räknare för hela tiden och en räknare/LED för
den ena perioden. Den andra blir ju alltid hela tiden minus räknarnen
i alla fall...
basmicke
Inlägg: 63
Blev medlem: 11 juli 2007, 15:25:04
Ort: Munkfors

Inlägg av basmicke »

tackar sodjan det börjar klarna lite nu. de e ju rätt så svårt när man är nybörjare å inte har någon direkt bok och läsa om hur det fungerar.
vat inte om man kanske har någon kurs nu i 2:an eller 3:an i pic programmering på elen. :D
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Många anser att http://www.amqrp.org/elmer160/lessons/index.html
är en av de bättre PIC-tutorials "out there". Om du bara inte snöar in på
att de använder dne gamla 16F84A, utan jämför med databladet för
den procesor som du kör med, så går det bra.

> vart finns det förklaringar för nybörjare

www.elektronikforumet.com

> har en pic16f267

Finns ingen PIC som heter så. 627A kanske ?

> är det samma källkoder för alla eller?

627A, 628A och 648A kör *i princip* samma kod (så länger minnet räcker till).
Seden skiljer det mer och mer beroende på vilka kretsar du menar.
Men, databladen har alla skillnader...
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Jo, helst skall man inte titta för mycket på kod från gamla 12-bitars kärnorna (vilken 10F är byggd på). Koden blir lite märklig eftersom ett antal SFR inte är mappade i minnesstrukturen utan bara nås med specialinstruktioner (TRIS, OPTION).

Börjar man ny nu så skulle jag enbart titta på 16-bitars (instruktioneslängd, de är fortfarande en 8-bitars uC) uC som 18-serien då dessa är mycket enklare att programmera än 12 och 14 bitars generationen. 14-bitars kärnan är bra så länge uC är liten, men till uC men mycket RAM, många SFR och stort programmminne så är det lite träligt med bankningen av både register och programmminnet.

18-serien har också många "nya" bra funktioner, den kan multiplicera! Detta enbart spar mycket kod.... På sätt och vis är nog 18-serien en av de mest lättprogrammerade uC på marknaden om man skriver assambler.

Växlar man mellan olika uC och vill ta kod från en annan kärna så är det som oftast ger problem skillnader i specialfunktioner och skillnader i osc/config då vissa har en 4MHz klocka som skall kalibreras med ett värde till OSCAL, vissa inte, vissa har 4 eller 8MHz inosc och så vidare. Så länge man kör med extern HS-osc så brukar det oftast gå rakt av, men finns stora skillnader i just intosc bitarna. På vissa kan man köra med dubbla klockor (till och med lilla 12f629 kan köra timer på extern 32kHz och programmet med intosc....)

Läs datablad.....
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Ett sätt att dra en gräns mellan PIC16 och PIC18 är när *programkoden*
överstiger 2 K-ord. På PIC16 får man då lite extra job med CALL
och GOTO över "2K-gränsen" som inte finns på PIC18 serien.

Däremot är det inte lika besvärligt att t.ex lägga lookup-tabeller
och liknande (d.v.s "data") i programmet över 2K-gränsen...
Skriv svar