Auteur Topic: Verkeerslicht met behulp van de IC 12F675  (gelezen 3085 keer)

0 leden en 1 gast bekijken dit topic.

Offline Theo

  • Stationchef
  • ***
  • Berichten: 208
  • Thanked: 6 times
  • Geslacht: Man
    • ModelspoorPIC
Verkeerslicht met behulp van de IC 12F675
« Gepost op: 15 augustus 2016, 09:09:10 »
Hallo allemaal,

Na van de week ben ik weer eens begonnen met het maken van een eigen verkeerslicht. Nou weet ik dat je deze kant en klaar kan kopen, maar ik wil hem zelf helemaal maken. Het grootste probleem zit hem dan in de IC, deze moet je zelf programmeren. Na veel zoeken heb ik nu toch een taal gevonden waarin dit verrassend simpel gaat.

De werkwijze is in hoofdlijnen als volgt:
Het maken van het project komt eigenlijk neer op de volgende stappen:
•   Schrijf het programma in JALedit.
•   Sla je gemaakte programma op als  “Stoplicht .HEX” bestand.
•   Breng je "Stoplicht .HEX" bestand via de PICkit2 over naar je IC 12F675.
•   Soldeer je printplaat.
•   Plaats je IC in je printplaat.
•   Test het geheel.
•   Plaats je printplaat op je baan met de stoplichten.

Het moeilijkste lijkt altijd het programmeren.
Ik heb uiteindelijk het boek 50 PIC Microcontroller voor beginners en experts gekocht.
Hierin werd verwezen naar een simpel programma JALedit om mee te programmeren.

Dit is het programma:

include 12F675_Bert

pin_A0_direction = Output   -- Rood1
pin_A1_direction = Output   -- Geel1
pin_A2_direction = Output   -- Groen1
pin_A3_direction = Output   -- Rood2
pin_A4_direction = Output   -- Geel2
pin_A5_direction = Output   -- Groen2

var volatile bit Rood1  is pin_A0
var volatile bit Geel1  is pin_A1
var volatile bit Groen1 is pin_A2
var volatile bit Rood2  is pin_A3
var volatile bit Geel2  is pin_A4
var volatile bit Groen2 is pin_A5

forever loop

      Groen1 = high      -- stoplicht-1 naar groen en blijft 3 seconde op groen
      Rood1  = low
      delay_1s(3)

      Geel1  = high      -- stoplicht-1 naar geel en blijft 1 seconde op geel
      Groen1 = low
      delay_1s(1)
     
      Rood1  = high      -- stoplicht-1 naar rood en blijft rood, na 1 seconde begint stoplicht-2
      Geel1  = low
      delay_1s(1)
     
      Groen2 = high      -- stoplicht-2 naar groen en blijft 2 seconde op groen
      Rood2  = low
      delay_1s(2)

      Geel2  = high      --  stoplicht-2 naar geel en blijft 1 seconde op geel
      Groen2 = low
      delay_1s(1)

      Rood2  = high      --  stoplicht-2 naar rood en blijft rood, na 1 seconde begint stoplicht-1 weer
      Geel2  = low
      delay_1s(1)
     
end loop

Als je dit hebt geschreven zet het programma het netjes voor je om in een HEX-file.

Met het programma PICkit zet je het programma over op je IC 12F675

De volgende stap is het solderen van je printplaat.

De IC 12F675 kost bij Aliexpress slecht 5 Euro voor 10 stuks.

Deze IC heeft 6 ingangen, die naar wens kan zetten als input of als outputs.
Je kan dus nog veel meer schakelingen maken met deze iC.

Ik heb alles nu bij Aliexpress inmiddels besteld, dus even 4 weken wachten voordat ik weer verder kan.
Maar ik denk dat ook andere hier iets mee kunnen vandaar dat ik dit project op de site zet.

In de bijlage staat het een en ander wat verder uitgewerkt.







Raages

  • Gast
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #1 Gepost op: 15 augustus 2016, 10:17:21 »
Een leuk karwei, ik ben benieuwd hoe het er uit gaat zien.

Offline Ben

  • Rangeerder
  • ****
  • Berichten: 301
  • Thanked: 3 times
  • Geslacht: Man
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #2 Gepost op: 15 augustus 2016, 10:32:00 »
Hallo allemaal,

Na van de week ben ik weer eens begonnen met het maken van een eigen verkeerslicht. Nou weet ik dat je deze kant en klaar kan kopen, maar ik wil hem zelf helemaal maken. Het grootste probleem zit hem dan in de IC, deze moet je zelf programmeren. Na veel zoeken heb ik nu toch een taal gevonden waarin dit verrassend simpel gaat.

De werkwijze is in hoofdlijnen als volgt:
Het maken van het project komt eigenlijk neer op de volgende stappen:
•   Schrijf het programma in JALedit.
•   Sla je gemaakte programma op als  “Stoplicht .HEX” bestand.
•   Breng je "Stoplicht .HEX" bestand via de PICkit2 over naar je IC 12F675.
•   Soldeer je printplaat.
•   Plaats je IC in je printplaat.
•   Test het geheel.
•   Plaats je printplaat op je baan met de stoplichten.

Het moeilijkste lijkt altijd het programmeren.
Ik heb uiteindelijk het boek 50 PIC Microcontroller voor beginners en experts gekocht.
Hierin werd verwezen naar een simpel programma JALedit om mee te programmeren.

Dit is het programma:

include 12F675_Bert

pin_A0_direction = Output   -- Rood1
pin_A1_direction = Output   -- Geel1
pin_A2_direction = Output   -- Groen1
pin_A3_direction = Output   -- Rood2
pin_A4_direction = Output   -- Geel2
pin_A5_direction = Output   -- Groen2

var volatile bit Rood1  is pin_A0
var volatile bit Geel1  is pin_A1
var volatile bit Groen1 is pin_A2
var volatile bit Rood2  is pin_A3
var volatile bit Geel2  is pin_A4
var volatile bit Groen2 is pin_A5

forever loop

      Groen1 = high      -- stoplicht-1 naar groen en blijft 3 seconde op groen
      Rood1  = low
      delay_1s(3)

      Geel1  = high      -- stoplicht-1 naar geel en blijft 1 seconde op geel
      Groen1 = low
      delay_1s(1)
     
      Rood1  = high      -- stoplicht-1 naar rood en blijft rood, na 1 seconde begint stoplicht-2
      Geel1  = low
      delay_1s(1)
     
      Groen2 = high      -- stoplicht-2 naar groen en blijft 2 seconde op groen
      Rood2  = low
      delay_1s(2)

      Geel2  = high      --  stoplicht-2 naar geel en blijft 1 seconde op geel
      Groen2 = low
      delay_1s(1)

      Rood2  = high      --  stoplicht-2 naar rood en blijft rood, na 1 seconde begint stoplicht-1 weer
      Geel2  = low
      delay_1s(1)
     
end loop

Als je dit hebt geschreven zet het programma het netjes voor je om in een HEX-file.

Met het programma PICkit zet je het programma over op je IC 12F675

De volgende stap is het solderen van je printplaat.

De IC 12F675 kost bij Aliexpress slecht 5 Euro voor 10 stuks.

Deze IC heeft 6 ingangen, die naar wens kan zetten als input of als outputs.
Je kan dus nog veel meer schakelingen maken met deze iC.

Ik heb alles nu bij Aliexpress inmiddels besteld, dus even 4 weken wachten voordat ik weer verder kan.
Maar ik denk dat ook andere hier iets mee kunnen vandaar dat ik dit project op de site zet.

In de bijlage staat het een en ander wat verder uitgewerkt.

Offline Theo

  • Stationchef
  • ***
  • Berichten: 208
  • Thanked: 6 times
  • Geslacht: Man
    • ModelspoorPIC
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #3 Gepost op: 15 augustus 2016, 11:20:44 »
Zo gaat het printplaatje eruit zien.

Offline Theo

  • Stationchef
  • ***
  • Berichten: 208
  • Thanked: 6 times
  • Geslacht: Man
    • ModelspoorPIC
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #4 Gepost op: 21 augustus 2016, 10:23:51 »
Hoi allemaal, ik moet toch nog even wachten opdat me spullen uit China binnen komen, dus heb ik nog maar iets geprogrammeerd, een overweg beveilig. Deze IC werkt als volgt:
Wacht totdat er een trein zich aanmeld via b.v. een (of meer) reedcontacten. (tot dan knippert het andreas kruis wit)
Heeft een trein het reedcontact gepasseerd, dan knipperen twee rode LEDs om beurten.
Wacht totdat de trein over de overweg rijdt, hier zit namelijk ook een reedcontact.
Wacht nu nog 1 seconde en zet het witte LED daarna weer knipperend.

Raages

  • Gast
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #5 Gepost op: 21 augustus 2016, 13:24:45 »
Die laatste regel vind ik niet handig. Wat gebeurt er als de trein heel lang is of als hij er langzaam rijdt? Bij beveiliging wordt meestal geen timer gebruikt maar een melding.

Offline Theo

  • Stationchef
  • ***
  • Berichten: 208
  • Thanked: 6 times
  • Geslacht: Man
    • ModelspoorPIC
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #6 Gepost op: 21 augustus 2016, 13:45:15 »
De gedachten gang is dat de magneet onder de laatste wagon zit.
Mocht er overhoop toch iets misgaan, dan zal de schakeling zich zelf de eerst volgende keer zich resetten. De schakeling werk geheel zelfstandig, hij heeft geen invloed op de rest van het systeem.
Je zou ook een contactrail kunnen gebruiken die op de plaats van de overweg zit.
De overweg wordt pas vrijgegeven als deze rail contact heeft gemaakt en daarna contact loos is.
Bij deze laatste optie moet de trein zijn aangekomen maar ook zijn gepasseerd.







Offline Pierre

  • Super Modelspoorder
  • ******
  • Berichten: 7.919
  • Thanked: 334 times
  • Geslacht: Man
  • Woonplaats: Den Haag (Loosduinen)
    • Haagse Modelbouw Club
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #7 Gepost op: 21 augustus 2016, 15:37:44 »
Die laatste regel vind ik niet handig. Wat gebeurt er als de trein heel lang is of als hij er langzaam rijdt?

Als je maar zorgt dat het magneetje altijd in de laatste of een van de laatste wagons zit is er niets aan de hand Frits. Mijn overweg werkte ook zo.
Groet Pierre.

Ik rommel wat met treintjes en bouwwerkjes in H0 (H0e) en ook een klein beetje in N  .... Scratchbuilding, kitbashing en weathering.  ;D Lid van de http://haagsemodelbouwclub.nl/

Offline Theo

  • Stationchef
  • ***
  • Berichten: 208
  • Thanked: 6 times
  • Geslacht: Man
    • ModelspoorPIC
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #8 Gepost op: 21 augustus 2016, 18:43:36 »
Ik denk dat als je 3 reedcontacten gebruik dat dit het beste is. Je hebt ook nog eens te maken met een baan die niet al te lang is, dus je moet een beetje schipperen van wat wel en niet kan.
Maar wat als de trein een reedcontact mist, dan klopt je hele schema niet meer.
Er moet ook iets worden ingebouwd in die zin dat als de trein over b.v. 30 niet is gepasseerd (afgemeld) het systeem zich zelf in de start fase terug zet.

Offline Theo

  • Stationchef
  • ***
  • Berichten: 208
  • Thanked: 6 times
  • Geslacht: Man
    • ModelspoorPIC
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #9 Gepost op: 21 augustus 2016, 19:06:58 »
Met tekening, het systeem moet zowel voor van links als voor van rechts komende treinen werken.

Raages

  • Gast
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #10 Gepost op: 21 augustus 2016, 20:05:02 »
Begrepen hoor. Dus op jullie laatste wagons zit een vette sticker "Niet mee rangeren!!"  ;D

Offline Theo

  • Stationchef
  • ***
  • Berichten: 208
  • Thanked: 6 times
  • Geslacht: Man
    • ModelspoorPIC
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #11 Gepost op: 21 augustus 2016, 20:41:15 »
Ik heb er een simulatie van gemaakt. (het is een -.exe file)
Maar als je een magneetje vervelend vind kan je ook een IR-schakelaar gebruiken of een contactrail.
Als je maar een start contact hebt.

Offline Theo

  • Stationchef
  • ***
  • Berichten: 208
  • Thanked: 6 times
  • Geslacht: Man
    • ModelspoorPIC
Re: Verkeerslicht met behulp van de IC 12F675
« Reactie #12 Gepost op: 1 september 2016, 18:14:43 »
Hallo iedereen,
Vandaag heb ik de PIC vanuit China binnen gekregen en dus gelijk maar aan de slag gegaan.
De PIC met PICkit2 geladen en op de testbank gezet.
Ja, hij werkt.
Nu naar de volgende stap, alles op een printplaatje solderen, maar dat zal geen problemen geven.

Gr. Theo