PIC Opgave 6 - Løbelys: Forskelle mellem versioner

Fra HTX Arduino
Spring til navigation Spring til søgning
m 1 version importeret
 
Linje 44: Linje 44:
===Udvidelse 5===
===Udvidelse 5===
Udvid / tilret opgaven så løbelyset løber frem og tilbage af sig selv. I må selv bestemme om det er den med 1 eller 3 lysdioder i laver, eller dem begge.
Udvid / tilret opgaven så løbelyset løber frem og tilbage af sig selv. I må selv bestemme om det er den med 1 eller 3 lysdioder i laver, eller dem begge.
{{PIC}}
{{Opgaver}}


[[Kategori:Programmerings_Opgaver]]
[[Kategori:Programmerings_Opgaver]]

Nuværende version fra 15. nov. 2022, 10:57

En lille festlig applikation er at lave et løbelys.

Opgaven udvides i PIC Opgave 7 - Udvidet løbelys

Arduino Programmeringsopgave - At få 8 udgange til at lave et løbelys.

Opgaven går ud på at tænde en lysdiode, vente et begrænset stykke tid, slukke den og tænde den næste, så det kommer til at se ud som om lyset "løber" hen ad en række dioder.

Overvejelser på softwaren

Den nemme løsning er at anvende digitalWrite() og hard-kode 8 stykker kode som stort set ligner hinanden.

Prøv i stedet at overveje om en variabel kunne angive udgangen der skal tændes og slukkes, så man ikke skal have så meget kode der ligner hinanden.

Overvejelser på porten

Man kan også have en variabel som man betragter binært, og så skriver den direkte til porten som PORTD = talVar;

PORTD angiver output 0-7, så man vil kunne bruge dem samlet, dog med den begrænsning, at man ikke kan anvende den serielle port samtidigt med.

Bruger man PORTB i stedet, så har man kun 6 bit til rådighed som output 8-13.

Bruger man PORTC, så er der igen kun 6 bit til rådighed, der ligger som A0 til A5.

Husk at sætte alle portben til output.

PIC Programmeringsopgave - At få 8 udgange til at lave et løbelys.

Opgaven går ud på at tænde en lysdiode, vente et begrænset stykke tid, slukke den og tænde den næste, så det kommer til at se ud som om lyset "løber" hen ad en række dioder.

Overvejelser på porten

Det vil umiddelbart være lettest at få en port hvor det er mange samlede udgange, f.x. Port C til at lave tricket, da der kan være 8 brugbare bit i den port (I kan også begrænse opgaven til 6 bit hvis I arbejder med en PIC16F684). Det betyder dog også, at I skal have forbindelse til et fumlebræt, så det betyder I skal have lavet et stik og fladkabel til det. Stikkets benforbindelser kan findes i Udviklingsboard. I kan finde mere konkret information under de enkelte PIC-kredse i denne wiki.

Udvidelser

Den første udvidelse I kan lave er at udnytte en variabel til at huske på udgangens sidste tilstand, i stedet for blot at tænde enkelt-udgange ved at kopiere og tilrette koden.

Udvidelse 2

Udvid opgaven med at få løbelyset til at løbe frem og tilbage.

Udvidelse 3

Udvid opgaven med at det ikke er 1 lysdiode af gangen der er tændt, men 3 af gangen.

Udvidelse 4

Udvid opgaven ved at lade det være styret af en indgang, hvilken vej løbelyset løber. I må selv bestemme om det er den med 1 eller 3 lysdioder i laver, eller dem begge.

Udvidelse 5

Udvid / tilret opgaven så løbelyset løber frem og tilbage af sig selv. I må selv bestemme om det er den med 1 eller 3 lysdioder i laver, eller dem begge.

PIC
PIC-Typer PIC16F84 - PIC12F675 - PIC16F628 - PIC16F684 - PIC16F690 - PIC16F877 - PIC18F2550
Programmeringsbegreber Maskinkode - Mikrocontroller
Programmeringsmiljø PIC-brænder - UsbPicProg - Analog indgang - ICSP


Digitale Opgaver
Kombinatorisk Logik Opgave 1a - Opgave 1b - Opgave 2 - Opgave 3 - Opgave 4 - Opgave 5 - Opgave 6 - Opgave 7 - Opgave 8 - Opgave 9 - Opgave 10
Sekvensiel Logik Opgave 11 - Opgave 12 - Opgave 13 - Opgave 14
Analoge Opgaver
Modstande og Ohms lov Modstands Opgave 1 - Modstands Opgave 2 - Modstands Opgave 3 - Modstands Opgave 4 - Modstands Opgave 5 - Modstands Opgave 6 - Modstands Opgave 7 - Modstands Opgave 8 - Modstands Opgave 9 - Modstands Opgave 10
Kondensator og Spole Kondensator opgaver 1 - Kondensator DC opgave 1 - Kondensator AC opgave 1 - Spolen 1 - Seriekobling og parallelkobling - Spolen 2 - Beregning af spoleværdier (selvinduktionen) - Spolen 3 - Tidskonstant for RL-led - Spolen 4 - Beregning af induktiv-reaktansen
Operationsforstærker Opamp Opgave 1 - Opamp Opgave 2 - Opamp Opgave 3
Diverse Opgaver Opgaver Diagram - Opgaver Transformator - Transistor opgave - Zenerdiode Opgave 1
Programmerings Opgaver
Arduino Arduino Blink - Arduino Opgave 01 - Blink - Arduino Button - Analog Out - Arduino StateChangeDetection - Arduino termometer - Arduino termostat - Arduino udgangsforstærkning
PIC PIC Opgave 1 - Blink - PIC Opgave 2 - Gates - PIC Opgave 3 - Udvidet blink - PIC Opgave 4 - Kombinatorik - PIC Opgave 5 - Flip-flops - PIC Opgave 6 - Løbelys - PIC Opgave 6a - kontakt - PIC Opgave 7 - Udvidet løbelys - PIC Opgave 8 - Sekventielle kredsløb - PIC Opgave 9 - Multivibratorer - PIC Opgave 10 - Samtidighed - PIC Opgave 11 - Tastatur - PIC Opgave 12 - Display - PIC Opgave 13 - A-D converter - PIC Opgave 14 - Interrupt - PIC Opgave 15 - Seriel komm - PIC Opgave 16 - Lyskryds - PIC Opgave 17 - Tyverialarm
PIC Opgave Løsninger PIC Opg 1 Løsning - PIC Opg 2 Løsning - PIC Opg 3 Løsning - PIC Opg 4 Løsning - PIC Opg 5 Løsning