Arduino: besturen van loodsdeuren met behulp van Arduino

Gestart door philippe_007, 01 juli 2015, 23:41:49 PM

raf

#15
heu eigen versie ???? echt nie
ik gebruik een microship pic en geen arduino
mijn code verschilt zo een 100% van die van u
en ik heb een centrale rookgenerator ingepland die meerdere uitgangen heeft .
hij werkt ook niet met die rook olie maar met water .


Device 16F628A                ;Gebruik een 16F628A type
  Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
  All_Digital TRUE
  Xtal 4
  Declare PortB_Pullups On


  Symbol knop1 = PORTB.0
  Symbol knop2 = PORTB.1
  Symbol knop3 = PORTB.2
  Symbol knop4 =PORTB.3
  Symbol motor1 =PORTA.0
  Symbol motor2 =PORTA.1
  Symbol motor3 =PORTA.7
  Symbol motor4 =PORTA.6
  Symbol led1    = PORTA.3
  Symbol led2 = PORTA.2
  Symbol lasled = PORTB.6
  Symbol buiten = PORTB.7

  Dim mini3 As Word
  Dim mini2 As Word
  Dim mini1 As Word
  Dim maxi1 As Word
  Dim maxi3 As Word
  Dim maxi2 As Word
  Dim schak1 As Word
  Dim schak2 As Word
  Dim schak3 As Word
  Dim schak4 As Word

  Dim a As Byte
  Dim b As Byte
  Dim c As Byte
  Dim d As Word
  Dim e As Word
  Dim f As Word
  Dim g As Word
  Dim pauze As Word
  Dim pauze2 As Word
  PORTA = %00000000             
  TRISA = %00000000
  PORTB = %00110000           
  TRISB = %00001111

  mini1 = 1000
  mini2 = 1300
  mini3 = 1500
  maxi1 = 2000
  maxi2 = 2300
  maxi3 = 2400
  schak1 = maxi1
  schak2 = mini1
  schak3 = mini1
  schak4 = maxi1
  pauze = 10
  pauze2 = 200
  led1 = 1
  DelayMS pauze
  led2 = 1
  DelayMS pauze
  lasled = 1
  DelayMS pauze
  buiten = 1
  DelayMS pauze
  led1 = 0
  DelayMS pauze
  led2 = 0
  DelayMS pauze
  lasled = 0
  DelayMS pauze
  buiten = 0
  DelayMS pauze

  start:
  While 1 = 1

      If knop4 = 0 And knop1 = 1 And knop2 = 1 And led1 = 0 And led2 = 0 Then GoSub ledlas
      If knop3 = 1 Then buiten = 0
      If knop3 = 0 Then buiten = 1
      If knop1 = 0  Then GoSub lichtaan1
      If knop2 = 0  Then GoSub lichtaan2
      If knop1 = 1 And schak1 = maxi3 And schak2 = mini1 Then GoSub lichtuit1
      If knop2 = 1 And schak3 = maxi2 And schak4 = mini2  Then GoSub lichtuit2
      If  knop1 = 1 And  d > 0 Then d = d - 1
      If d < 1 And knop1 = 1 Then led1 = 0
      If knop2 = 1 And e > 0 Then e = e - 1
      If e < 1  And knop2 = 1 Then led2 = 0
      If knop1 = 0  Then  schak1 = schak1 + 1
      If knop1 = 0  Then schak2 = schak2 - 1
      If knop2 = 0  Then  schak3 = schak3 + 1
      If knop2 = 0  Then schak4 = schak4 - 1
      If knop1 = 1  Then  schak1 = schak1 - 1
      If knop1 = 1  Then schak2 = schak2 + 1
      If knop2 = 1  Then  schak3 = schak3 - 1
      If knop2 = 1  Then schak4 = schak4 + 1
      If schak1 > maxi3  Then schak1 = maxi3
      If  schak1 < mini1 Then schak1 = mini1

      If schak2 > maxi3 Then schak2 = maxi3
      If  schak2 < mini1 Then schak2 = mini1

      If schak3 > maxi2  Then schak3 = maxi2   
      If  schak3 < mini2 Then schak3 = mini2   

      If schak4 > maxi3 Then schak4 = maxi3 
      If  schak4 < mini2 Then schak4 = mini2   

      Servo motor1,schak1     
      Servo motor2,schak2   
      Servo motor3,schak3   
      Servo motor4,schak4     
                                           

  Wend
  lichtaan1:

  If b = 1 Then Return
  b=1
  led1 = 1
  For g = 1 To pauze2
      DelayMS 20
  Next
  Return

  lichtaan2:
  If c = 1 Then Return
  c = 1
  led2 = 1
  For f = 1 To pauze2
      DelayMS 20
  Next
  Return

  lichtuit1:
  If b = 0 Then Return
  b = 0
  d = 2000
  Return
  lichtuit2:
  If c = 0 Then Return
  c = 0
  e = 2000
  Return
  ledlas:
  lasled   = 1
  DelayMS 5
  lasled = 0
  DelayMS 30
  lasled = 1
  DelayMS 5
  lasled  = 0
  DelayMS 150
  lasled = 1
  DelayMS 5

  lasled = 0
  DelayMS 100
  lasled   = 1
  DelayMS 5
  lasled = 0
  DelayMS 300
  lasled = 1
  DelayMS 5
  lasled  = 0
  DelayMS 150
  lasled = 1
  DelayMS 5

  lasled = 0
  DelayMS 100
  lasled = 1
  DelayMS 5
  lasled = 0
  DelayMS 30
  Return


gr raf
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

philippe_007

ah, dan had ik het niet goed verstaan, je schreef
"na de programmacode te hebben bekeken vroeg ik me al af waarom elke deur apart open/dicht ging"
ik dacht dat je mijn code bedoelde.

het gebruik van een microchip Pic is voor later (daarvoor moet ik eerst wat meer elektronica kennen),  aan uw code te zien valt het mee om deze te programmeren.

raf

waarom dacht je dat ik proton gebruik
40 jaar geleden basic leren programmeren en daar ik meer feeling heb met proton ide basic heb ik dus de keuze gemaakt om dat programma aan te kopen .
en het lukt me aardig om wat zaken te programmeren tot nu toe
soms loop ik vast maar dat is dan meer het processor gerelateerd probleem wat processor instructies aan gaat

wat uw code betreft voor arduino daar moest ik eventjes een tijdje op onderzoek uit gaan wat het allemaal betekend en daar zag ik dus dat je de twee deuren niet tegelijk laat openen maar achter elkaar.
als ik nog wat schakelaars bij zet en de code aan pas kan ik elke deur apart laten open gaan maar is dat wel nodig
hier nu een filmpje met de loods op zijn plaats
https://youtu.be/kovsXwt3HPU
en wat loco's die nog gewoon rijden nu zonder de pwm sturing dus het hapert hier en daar een beetje want er is nu niet echt veel over deze sporen gereden
maar de loods deuren werken wel perfect en gerolf zal nu niet zeeziek meer worden  ;D
de loods daarnaast staat ook reeds klaar om te worden aangepast maar deze heeft 3 deuren dus een kleine aanpassing van de gebruikte code en dan kan die in de pic geprogrammeerd worden .

gr raf
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

philippe_007

Ziet er goed uit en zonder zeeziekte :-)

Id, hoe de deuren open gaan is een persoonlijke keuze, de 2 afzonderlijk was op vraag van een collega modelbouwer die het zou wou hebben.

Het programmeren heb ik geen problemen mee, het is meer het elektronica gedeelte en hoe een µcontroller programmeren. Maar ben op zoek om een cursus te volgen vanaf september..

raf

If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

philippe_007