PIC Opgave 16 - Lyskryds

Fra HTX Arduino
Spring til navigation Spring til søgning

Opgaven går ud på at konstruere, dokumentere, simulere, opbygge og efterkontrollere et lyskryds.

PIC Programmeringsopgave - At lave styringen til et Lyskryds

Lyskrydset opbygges som et program i en PIC.

Lyskryds1.png

Lysene for vej A og C er ens. Lysene for vej B og D er ens. Lysene for vej B skal være de samme som for vej A, bare tidsforskudt. Udnyt det at man kan sætte flere lysdioder til samme udgang.

  1. Rød- og Grøn-perioderne skal være ca. lige lange.
  2. Gul-perioden efter grøn skal være ca. 10% af grøn-perioden.
  3. Gul-perioden efter rød skal være ca. 5% af rød-perioden
  4. Gul må ikke tænde før grøn slukker.
  5. Gul efter grøn skal være tændt et stykke tid, før rød tænder.
  6. Gul efter grøn skal være tændt et stykke tid sammen med rød.
  7. Gul efter rød tænder sammen med rød før grøn.
  8. Grøn tænder når gul og rød slukker.
  9. Grøn for vej B må først tænde, når rød for vej A og rød for vej B har været tændt samtidigt i ca. 10% af rød-perioden, og lige sådan for grøn for vej A.

Start med at tegne en pulsplan for hvordan lysene afvikles.

Udvidelse 1

Hvis I vil have en mindre udvidelse, så kan I bygge lys på til fodgængerfeltet.

Fodgængerne skal kun have grønt i de første 80% af bilernes grøn-periode. Fodgængerne har ingen gul, og deres røde skal være tændt, når deres grøn er slukket.

Udvidelse 2

Lav en trafik-afhængig styring, således at vej A altid står med grønt, indtil der kommer en bil på vej B (brug kontakt 14). Når der kommer en bil på vej B, så skal vej B gennemløbe en periode som i den grundlæggende opgave, og den skal så gå tilbage på vej A.

Udvid således at vej A altid vil få de 7 sekunder, inden vej B kan få en ny periode, således at mange biler på ved B ikke resulterer i kødannelse på vej A.

Udvidelse 3

Denne opgave kører igen automatisk uden trafikstyring fra bilerne, så det kan være en fordel at starte i løsningen fra starten af opgaven.

Vi skal nu have fodgænger-lys på, så vi skal have flere indikatorer nok som lysdioder. Man kan også for at holde styr på det skrive noget ud til Seriel Monitor.

Fodgængertrykket til vej A og fodgængertrykket på vej B skal forbindes til 2 kontakter.

For fodgængerne skal lyset vise rødt hele tiden, med mindre fodgængertrykket er blevet aktiveret. En fuld periode for fodgængerne er at den grønne starter sammen med bilernes grønt, men at den slutter 1 sekund før, og gul-rød har samme slutsekvens som bilernes, bare forskudt 1 sekund. Dette er for at fodgængerne skal kunne nå over.

For at beskytte fodgængerne må der heller ikke være for kort en periode med bil-grønt, så hvis fodgænger-trykket bliver aktiveret senere end 2 sekunder inde i bilernes grønne periode (for begge veje), så skal fodgænger-perioden ikke komme i denne periode – den skal så til gengæld komme i den næste grønne bil-periode for den aktuelle vej. Tilsvarende skal der selvfølgelig huskes på fodgængertrykket hvis det aktiveres i bilernes gul- eller rød-periode.

Test at alle betingelser af, at det fungerer i alle tilfælde (man skulle jo nødigt genere fodgængerne, eller endnu værre, have grønt i begge retninger samtidigt).

Udvidelse 4

Dette er egentlig ikke en udvidelse, men en helt ny opgave, hvor det kan være en fordel at starte helt fra bunden.

Find ud af hvordan lyskrydset Døesvej - Nørrebrogade i Holstebro ser ud, og hvordan det kan styres.

Lyskryds2.png

Opbyg styringen med tidsstyring.

Udvidelse 5

Lyskrydset Døesvej - Nørrebrogade er trafikstyret, også med cykler - analyser hvordan styringen kan optimeres, og hvordan det kan programmeres.

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