PIC programmera på labplattan.
-
- Inlägg: 36
- Blev medlem: 27 februari 2007, 16:12:39
- Ort: Vallentuna
-
- Inlägg: 36
- Blev medlem: 27 februari 2007, 16:12:39
- Ort: Vallentuna
Jag gav den värdet PORTA.4 = 0 innan jag kollade igen om knappen fortfarande var tryckt. Det är säkert helt fel, men verkar funka. Hur ska man göra? Säkert ska man jorda den med ett motstånd eller något liknande. Som sagt jag har inte full koll på vad jag gör, men den som testar och frågar lär sig så småningom. Man kan ju också läsa sig till allt, men då måste man veta vart man ska leta och vad det man läser betyder.
Du är på helt rätt spår. Den ska lämpligen jordas via ett motstånd. Utan det så förstår jag om du har fått problem. 
Sedan är det så att man vanligen lägger motståndet till plus och knappen till nollan istället för tvärtom. Då kan man t.ex utnyttja den interna pullupen som finns i PIC:ar istället för externa motstånd.
Att sätta portpinnen till 0 hjälper inte ett dugg eftersom det bara påverkar pinnen när den är satt som utgång. Det skulle ju rimligen aldrig kunnat fungera på det sättet. Vem skulle haft kontroll över pinnen isåfall? Knappen på utsidan eller utgången? Tänk dig att du tryckte på knappen samtidigt som utången sattes till 0. Det skulle isåfall blivit kortslutning. Nej, den varianten glömmer vi fort!

Sedan är det så att man vanligen lägger motståndet till plus och knappen till nollan istället för tvärtom. Då kan man t.ex utnyttja den interna pullupen som finns i PIC:ar istället för externa motstånd.
Att sätta portpinnen till 0 hjälper inte ett dugg eftersom det bara påverkar pinnen när den är satt som utgång. Det skulle ju rimligen aldrig kunnat fungera på det sättet. Vem skulle haft kontroll över pinnen isåfall? Knappen på utsidan eller utgången? Tänk dig att du tryckte på knappen samtidigt som utången sattes till 0. Det skulle isåfall blivit kortslutning. Nej, den varianten glömmer vi fort!

> Jag gav den värdet PORTA.4 = 0 innan jag kollade igen om knappen fortfarande var tryckt.
Som jag svarade tidigare, du ska inte göra så.
Och helt korrekt, jag frågade vad det var som gjorde pinnen "låg"
när du *inte* tryckte på knappen, den blir ju inte "låg" av sig själv,
så att säga. .-)
"Öppna" *ingångar* (d.v.s ingångar som inte är anslutna någonstans) är
för övrigt definitivt förbjudet om man inte vill få otrevliga överraskningar...
Alla *oanvända* pinnar ska *antingen* sättas som utgångar (enklast)
*eller* kopplas till 5V eller jord. De ska absolut inte lämnas som ingångar
*och* helt oanslutna.
För övrigt har du fått ett antal helt korrekta svar, så det bör inte vara
något problem längre.
Sen, inom parentes, så kan man väl tilläga att det *finns* metoder där
man flippar en pinnen mellan utgång och ingång. Och genom att mäta
upp/ur laddningstiden på en kondensator så kan man avgöra vilken av
ett antal olika knappar (anslutna via olika motstånd) som är intryckt.
Helst ska man använda en pinne som är "komparator" när den är ingång,
så att man får en väldefinierad omslagspunkt.
Som jag svarade tidigare, du ska inte göra så.
Och helt korrekt, jag frågade vad det var som gjorde pinnen "låg"
när du *inte* tryckte på knappen, den blir ju inte "låg" av sig själv,
så att säga. .-)
"Öppna" *ingångar* (d.v.s ingångar som inte är anslutna någonstans) är
för övrigt definitivt förbjudet om man inte vill få otrevliga överraskningar...

Alla *oanvända* pinnar ska *antingen* sättas som utgångar (enklast)
*eller* kopplas till 5V eller jord. De ska absolut inte lämnas som ingångar
*och* helt oanslutna.
För övrigt har du fått ett antal helt korrekta svar, så det bör inte vara
något problem längre.
Sen, inom parentes, så kan man väl tilläga att det *finns* metoder där
man flippar en pinnen mellan utgång och ingång. Och genom att mäta
upp/ur laddningstiden på en kondensator så kan man avgöra vilken av
ett antal olika knappar (anslutna via olika motstånd) som är intryckt.
Helst ska man använda en pinne som är "komparator" när den är ingång,
så att man får en väldefinierad omslagspunkt.
-
- Inlägg: 36
- Blev medlem: 27 februari 2007, 16:12:39
- Ort: Vallentuna
Allt mellan 10-100 k är sannolikt helt perfekt.
Mindre motstånd -> mindre känslighet för störningar men högre strömförbrukning när du trycker på knappen.
Större motstånd -> tvärtom...
Strömförbrukninger är sannolikt totalt ointressant om du kör från nätet,
men väldigt intressant vid batterimatning.
Kontrollfråga,
är pinnen (via TRISA) satt som *utgång* när du sätter pinnen till "0" ??
Det är inte alls "bra" för processorn att kortsluta pinnen på det där sättet.
I värsta fall står du med en "bränd" utgång och en kass processor, men
PIC'arna tål ganska mycket misshandel...
Mindre motstånd -> mindre känslighet för störningar men högre strömförbrukning när du trycker på knappen.
Större motstånd -> tvärtom...
Strömförbrukninger är sannolikt totalt ointressant om du kör från nätet,
men väldigt intressant vid batterimatning.
Kontrollfråga,
är pinnen (via TRISA) satt som *utgång* när du sätter pinnen till "0" ??
Det är inte alls "bra" för processorn att kortsluta pinnen på det där sättet.
I värsta fall står du med en "bränd" utgång och en kass processor, men
PIC'arna tål ganska mycket misshandel...
-
- Inlägg: 36
- Blev medlem: 27 februari 2007, 16:12:39
- Ort: Vallentuna
Nu har jag gjort ändringarna och kopplat motståndet till plus och när jag trycker på knappen kollar jag om pinnen är låg.
Det är inga problem med tomma pinnar. Jag har klämt in så många dioder som det bara går. Sedan är alla output, utom port A4 där knappen sitter. Det blev totalt 11 dioder på slutversionen eftersom jag behövde en knapp och en högtalare.
Provade att filma timern med mobilen, men kvaliten är inte så bra.
Bild på timern
Kort film tagen med mobilen.
Tack för all hjälp.
Det är inga problem med tomma pinnar. Jag har klämt in så många dioder som det bara går. Sedan är alla output, utom port A4 där knappen sitter. Det blev totalt 11 dioder på slutversionen eftersom jag behövde en knapp och en högtalare.
Provade att filma timern med mobilen, men kvaliten är inte så bra.
Bild på timern
Kort film tagen med mobilen.
Tack för all hjälp.
-
- Inlägg: 36
- Blev medlem: 27 februari 2007, 16:12:39
- Ort: Vallentuna
-
- Inlägg: 36
- Blev medlem: 27 februari 2007, 16:12:39
- Ort: Vallentuna
Nu är min timer i princip klar. Den funkar som den ska, men en sista fråga.
När jag kopplar till en högtalare så behövde jag ju en pinne, den är sedan kopplad via en vridpot till 5v. Kommer högtalaren då att dra ström hela tiden, eller endast när den skickar ut toner? Timern kan ju stå på under max en timma så det är bra om jag jan minska strömförbrukningen.

När jag kopplar till en högtalare så behövde jag ju en pinne, den är sedan kopplad via en vridpot till 5v. Kommer högtalaren då att dra ström hela tiden, eller endast när den skickar ut toner? Timern kan ju stå på under max en timma så det är bra om jag jan minska strömförbrukningen.

-
- Inlägg: 36
- Blev medlem: 27 februari 2007, 16:12:39
- Ort: Vallentuna
Pinne A3 -> till motstånd (vridpot 10K) -> till högtalare -> till 5v på kortet.
Sedan startas ljudet med:
Sound_Init(PORTA, 3)
Sound_Play(80, 100 ' flera stycken olika i loop
Man kanske skulle koppla den till ytterligare en pinne i stället för 5v. och sätta den till hög när det var dax att få fram ljudet.
Var hittar jag någon besktivning på hur jag kopplar en högtalare på rätt sätt till PIC16F628?
Sedan startas ljudet med:
Sound_Init(PORTA, 3)
Sound_Play(80, 100 ' flera stycken olika i loop
Man kanske skulle koppla den till ytterligare en pinne i stället för 5v. och sätta den till hög när det var dax att få fram ljudet.
Var hittar jag någon besktivning på hur jag kopplar en högtalare på rätt sätt till PIC16F628?
> Pinne A3 -> till motstånd (vridpot 10K) -> till högtalare -> till 5v på kortet.
Är alltså två pinnar på potten hopkopplade ?
Om PIC pinnen är hög, så kan det ju inte gå någon ström någonstans.
Så håll den hög när det ska vara "tyst".
(Det kommer också att vara tyst om du håller den låg, men då
kommer det att gå en likström genom högtalaren.)
Du kan också sätta en stor (10-100 uF) konding i serie
så kan du hålla pinnen hur du vill, någon likström kan det
i alla fall inte gå.
> Var hittar jag någon besktivning på hur jag kopplar en högtalare på rätt sätt till PIC16F628?
*Här* kanske ?
Är alltså två pinnar på potten hopkopplade ?
Om PIC pinnen är hög, så kan det ju inte gå någon ström någonstans.
Så håll den hög när det ska vara "tyst".
(Det kommer också att vara tyst om du håller den låg, men då
kommer det att gå en likström genom högtalaren.)
Du kan också sätta en stor (10-100 uF) konding i serie
så kan du hålla pinnen hur du vill, någon likström kan det
i alla fall inte gå.
> Var hittar jag någon besktivning på hur jag kopplar en högtalare på rätt sätt till PIC16F628?
*Här* kanske ?