µC för nybörjare
Re: µC för nybörjare
Hej! Ni verkar ha kunskap till min fråga.
Jag vill göra ett ljud/data-projekt med Bluetooth/WiFi och µC som basstation, det finns en del att välja mellan för att inte tala om BT-enheter.
Jag kommer att behöva ett par analoga I/O förutom BT. Till det kanske NFC-avläsare för att para enheterna enkelt.
...Och frågan lyder: Vad passar bra ihop är enkelt och stabilt? Kanske finns en liten smidig modul med allt inbyggt..?
Mvh Johan
Jag vill göra ett ljud/data-projekt med Bluetooth/WiFi och µC som basstation, det finns en del att välja mellan för att inte tala om BT-enheter.
Jag kommer att behöva ett par analoga I/O förutom BT. Till det kanske NFC-avläsare för att para enheterna enkelt.
...Och frågan lyder: Vad passar bra ihop är enkelt och stabilt? Kanske finns en liten smidig modul med allt inbyggt..?
Mvh Johan
Re: µC för nybörjare
Starta gärna/helst en egen/separat tråd me en rellevamt
rubrik. Detta verkar vara en helt ny frågeställning.
rubrik. Detta verkar vara en helt ny frågeställning.
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: µC för nybörjare
Nu kommer det lite PWM frågor!
Tänkte börja labba lite med PWM på min PIC16F690 och här försöka åstakomma en LED som lyser lik en sinuskurva. Eftersom denna inte är linjär så blir det lite svettigare, i alla fall i min värld...
Så nu till den första frågan: Kan man använda sig av att justera pre/post-scalern under funktionens gång på något sätt för att få till det här? Vet inte riktigt vad jag fått det från men det kändes som om jag kanske kan nyttja det på något sätt.
Ska läsa mer datablad imorrn så då kanske det blir lite klarhet!
Ps. Dessa datablad... dom är så packade med information så råkar jag nysa samtidigt som jag läser så får jag börja om från början... Ds.
Tänkte börja labba lite med PWM på min PIC16F690 och här försöka åstakomma en LED som lyser lik en sinuskurva. Eftersom denna inte är linjär så blir det lite svettigare, i alla fall i min värld...
Så nu till den första frågan: Kan man använda sig av att justera pre/post-scalern under funktionens gång på något sätt för att få till det här? Vet inte riktigt vad jag fått det från men det kändes som om jag kanske kan nyttja det på något sätt.
Ska läsa mer datablad imorrn så då kanske det blir lite klarhet!
Ps. Dessa datablad... dom är så packade med information så råkar jag nysa samtidigt som jag läser så får jag börja om från början... Ds.
Re: µC för nybörjare
För att ändra ljusstyrkan ska du ändra dutycycle, alltså förhållandet mellan "på" och "av", på PWM-signalen. Om du ändrar prescalern så ändras frekvensen, om du ändrar postscalern så ändras hur ofta timern som genererar PWM-signalen också triggar en interrupt (om den är konfigurerad för det) - varje, varannan, var fjärde etc period.
EDIT: För att få en "sinusformad" signal får du antingen räkna fram värdet för dutycycle för varje "steg" eller använda en tabell och "slå upp" värdet.
EDIT: För att få en "sinusformad" signal får du antingen räkna fram värdet för dutycycle för varje "steg" eller använda en tabell och "slå upp" värdet.
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: µC för nybörjare
Ja ok, då hade jag förstått fel vad pre/post-scalern var.
Hmm, funderade också på om man gör en graf och ritar in kurvan där. X/Y är tid och dutycycle. Nja, Ska greja lite med det idag.
Hmm, funderade också på om man gör en graf och ritar in kurvan där. X/Y är tid och dutycycle. Nja, Ska greja lite med det idag.
Re: µC för nybörjare
Sedan ska jag krångla till det lite: ögat är inte linjärt! Vill du se en intensitetsändring som motsvara en sinus behöver du räkna med att ögat är logaritmisk. Logaritmisk är inte 100% korrekt men till detta duger det fint.
Re: µC för nybörjare
> ...som lyser lik en sinuskurva.
Med hur bra anpassning till en sinus?
Det absolut vanligaste är att räkna fram värden
för PWM modulen och lägga i en tabell som man sedan
läser rakt av. T.ex 90 värden, ett per grad.
Med hur bra anpassning till en sinus?
Det absolut vanligaste är att räkna fram värden
för PWM modulen och lägga i en tabell som man sedan
läser rakt av. T.ex 90 värden, ett per grad.
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: µC för nybörjare
@Icecap: Mycket intressant! Hade jag faktiskt inte en aning om. Hittade även denna tråden där man diskuterar just detta. Tack för det värdefulla tipset!
@sodjan: Jag postade nog en fråga lite för tidigt igår så jag vet inte riktigt hur bra anpassning till sinus jag behöver... Borde veta men i mitt fall handlar det kanske mer om vad jag klarar av att åstakomma.
Det du säger om tabell låter väldigt klokt och jag läsa mer ikväll!
@sodjan: Jag postade nog en fråga lite för tidigt igår så jag vet inte riktigt hur bra anpassning till sinus jag behöver... Borde veta men i mitt fall handlar det kanske mer om vad jag klarar av att åstakomma.
Det du säger om tabell låter väldigt klokt och jag läsa mer ikväll!
Re: µC för nybörjare
Jag har "lekt lite" med LED-moduler och styrningen därav och jag har kommit fram till att om jag avser 100% intensitetsändring i steg om 1% ska on-tiden för varje steg fördubblas. Jag har en intressant uträkning där jag kan ange antal möjliga PWM-steg (t.ex. 1000) och det önskade antal steg (t.ex. 100) och sedan får jag per automatik det rätta PWM-värdet.
Jag har upplevd att den uträkning ger mig en stigande intensitetsskala som ser linjär ut.
Detta betyder alltså att den sinus du begär kan åstadkommas men att din PWM-steg-frekvens ska vara ganska hög och att du behöver en 16 bit PWM-räknare för att inte få allt för synbara steg.
Jag har upplevd att den uträkning ger mig en stigande intensitetsskala som ser linjär ut.
Detta betyder alltså att den sinus du begär kan åstadkommas men att din PWM-steg-frekvens ska vara ganska hög och att du behöver en 16 bit PWM-räknare för att inte få allt för synbara steg.
Re: µC för nybörjare
En annan variant för att få många nivåer utan att få en stor tabell, är att göra ett fåtal tabellvärden och sedan interpolera mellan dessa med en rak linje. En punkt på denna raka linje är lätt att räkna ut utfrån två värden i tabellen.
Men det är kanske nästa nivå på det hela. Se det som en stegvis utvecklingsmöjlighet.
Men det är kanske nästa nivå på det hela. Se det som en stegvis utvecklingsmöjlighet.

Re: µC för nybörjare
Och skulle man skapa en tabell blir den ju bara från 0-90° som behövs. LED kan inte sända ut negativa värden, alltså är det inte så många värden som behövs.
- JimmyAndersson
- Inlägg: 26577
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Re: µC för nybörjare
Tips för att generera tabeller för sinus mm:
http://coding.smashingmagazine.com/2011 ... avascript/
Det är egentligen en guide om javascript, men teorin är ju den samma
och diagrammen kan vara en hjälp för att hitta fram till den kurva som du behöver.
Om du inte gillar javascript så finns det säkert färdiga program som matar ut en tabell för de kurvor man behöver.
(Likadana program användes flitigt på järnåldern, eftersom C64-datorn inte var tillräckligt snabb
för att generera värdena i samma veva som man behövde dem.)
http://coding.smashingmagazine.com/2011 ... avascript/
Det är egentligen en guide om javascript, men teorin är ju den samma
och diagrammen kan vara en hjälp för att hitta fram till den kurva som du behöver.

Om du inte gillar javascript så finns det säkert färdiga program som matar ut en tabell för de kurvor man behöver.
(Likadana program användes flitigt på järnåldern, eftersom C64-datorn inte var tillräckligt snabb
för att generera värdena i samma veva som man behövde dem.)
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: µC för nybörjare
Ja det var intressant läsning i alla fall Jimmy.
Meeeen sen har jag nog fått en släng av "gått in i väggen" med det här. Har suttit med databladet och verkligen försökt förstå mig på PWM men jag blir bara svettig av alla dessa formler, register och frekvenser.
Får ta en paus och ta nya tag en annan dag.
Meeeen sen har jag nog fått en släng av "gått in i väggen" med det här. Har suttit med databladet och verkligen försökt förstå mig på PWM men jag blir bara svettig av alla dessa formler, register och frekvenser.
Får ta en paus och ta nya tag en annan dag.