Springen naar inhoud


- - - - -

Schakelaar Doet Niet Wat Hij Moet Doen "Soms"


  • Log in a.u.b. om te beantwoorden
Er zijn 7 reacties in dit onderwerp

#1 pluto

pluto

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 663 berichten
    Laatst bezocht 28 jan 2018 21:10

Geplaatst op 12 juli 2014 - 11:28

ik ben bezig met een project om te weten in welke versnelling de moto zit. Om het probleem uit te leggen heb ik een klein programma gemaakt. Als je op de schakelaar drukt en weer los gaat de led aan en direct weer uit. Dus dit is goed. Maar als je op de schakelaar drukt en je blijft die ingedrukt houden gaat de led aan en terug uit, maar als je dan de schakelaar lost kan het SOMS gebeuren dat de led terug aan en uit gaat en dat mag niet. De schakelaar zit nu op een A poort via een pull up weerstand, over de schakelaar heb ik al een condensator van 100nF gezet. Maar het probleem komt nog SOMS voor.

Visual Basic Code:
DEVICE 16F628
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE
XTAL 4
DIM gevonden AS BYTE
SYMBOL led1 = PORTA.1
SYMBOL contactboven = PORTA.2
PORTB_PULLUPS ON
CLEAR
gevonden = 0
PORTA = %00000000
TRISA = %00000100
TRISB = %00010000
WHILE 1 = 1
IF contactboven = 0 AND gevonden = 0 THEN
gevonden = 1
led1 = 1
DELAYMS 100
led1 = 0
ENDIF
IF contactboven = 1 THEN
gevonden = 0
ENDIF
WEND
END 


#2 pluto

pluto

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 663 berichten
    Laatst bezocht 28 jan 2018 21:10

Geplaatst op 12 juli 2014 - 13:24

denk de juiste oplossing te hebben gevonden

Visual Basic Code:
WHILE 1 = 1
IF contactboven = 0 AND gevonden = 0 THEN
gevonden = 1
led1 = 1
DELAYMS 100
led1 = 0
WHILE contactboven = 0 : WEND
DELAYMS 25
ENDIF
IF contactboven = 1 THEN
gevonden = 0
ENDIF
WEND
END 


#3 Swets

Swets

    Professional Developer

  • Leden
  • PipPipPipPip
  • 367 berichten
    Laatst bezocht 22 feb 2018 16:36
  • LocatieKrimpen a/d IJssel

Geplaatst op 31 juli 2014 - 14:51

eigenlijk wil je op een rising egde een led die 100 milisec brand?

onee op een faling egde....

ik doe meestal  de variable waarop ik de faling of rising egde detection op wil hebben onderaan in het programma kopieren in een andere variabele...

if contactboven<contactboventemp then
gevonden=1;
endif

if gevonden=1 then
led1=1
delayMS 100
gevonden=0
led1=0
endif

contactboventemp=contactboven



met groter dan of met kleiner dan kan je een rising of een faling egde maken...

#4 pluto

pluto

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 663 berichten
    Laatst bezocht 28 jan 2018 21:10

Geplaatst op 31 juli 2014 - 22:48

thx Swets. Ik ben bezig met een versnellings indicator aan het maken voor de moto. 1 stamp naar beneden is de eerste  en de andere 5 is naar boven. Ik doe dit via reed contacten. Ik werk met een teller om te weten in welke versnelling je zit. Maar door die contact dender kan die teller wel eens raar doen. en werk dan met een 7 digit display. Nu laat ik hem telkens wat wachten, maar de tijd zal nog wat korter moeten zijn.
Visual Basic Code:
DEVICE 16F628 ;Gebruik een 16F628 type VERSNELLINGS INDICATOR
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL true
XTAL = 4
DIM teller AS BYTE
SYMBOL leda = PORTB.0
SYMBOL ledb = PORTB.1
SYMBOL ledc = PORTB.2
SYMBOL ledd = PORTB.3
SYMBOL lede = PORTB.4
SYMBOL ledf = PORTB.5
SYMBOL ledg = PORTB.6
SYMBOL aan = 1
SYMBOL uit = 0
SYMBOL verbinding = 0
SYMBOL geenverbinding = 1
SYMBOL onder = PORTA.0
SYMBOL neutraal = PORTA.1
SYMBOL boven = PORTA.2
PORTA = %00000000
TRISA = %11111111
PORTB = %00000000
TRISB = %00000000
PORTB_PULLUPS 0
leda = uit
ledb = uit
ledc = uit
ledd = uit
lede = uit
ledf = uit
ledg = uit
CLEAR
WHILE 1 = 1
IF neutraal = verbinding THEN ;in neutraal
IF teller = 1 THEN
teller = 1
ENDIF

IF teller = 0 THEN
teller = 1
ENDIF
IF teller > 1 THEN
DEC teller
ENDIF

DELAYMS 25
ledb = aan
DELAYMS 25
leda = aan
DELAYMS 25
ledc = aan
DELAYMS 25
ledd = aan
DELAYMS 25
lede = aan
DELAYMS 25
ledf = aan
DELAYMS 25
ledg = uit
WHILE neutraal = verbinding : WEND
DELAYMS 25
ENDIF


IF onder = verbinding THEN
IF teller = 1 THEN
teller = 1
ENDIF

IF teller = 0 THEN
teller = 1
ENDIF
IF teller > 1 THEN
DEC teller
DELAYMS 500
ENDIF
DELAYMS 500
IF teller = 1 THEN
ledb = aan
leda = uit
ledc = aan
ledd = uit
lede = uit
ledf = uit
ledg = uit
ENDIF
;hier

IF teller = 2 THEN
leda = aan
ledb = aan
ledc = uit
ledd = aan
lede = aan
ledf = uit
ledg = aan
ENDIF
IF teller = 3 THEN
leda = aan
ledb = aan
ledc = aan
ledd = aan
lede = uit
ledf = uit
ledg = aan
ENDIF
IF teller = 4 THEN
leda = uit
ledb = aan
ledc = aan
ledd = uit
lede = uit
ledf = aan
ledg = aan
ENDIF
IF teller = 5 THEN
leda = aan
ledb = uit
ledc = aan
ledd = aan
lede = uit
ledf = aan
ledg = aan
ENDIF
IF teller = 6 THEN
leda = aan
ledb = uit
ledc = aan
ledd = aan
lede = aan
ledf = aan
ledg = aan
ENDIF
WHILE onder = verbinding : WEND
DELAYMS 50
ENDIF



IF boven = verbinding THEN
INC teller
DELAYMS 500
IF teller > 6 THEN
teller = 6
ENDIF
DELAYMS 500
IF teller = 2 THEN
leda = aan
ledb = aan
ledc = uit
ledd = aan
lede = aan
ledf = uit
ledg = aan
ENDIF
IF teller = 3 THEN
leda = aan
ledb = aan
ledc = aan
ledd = aan
lede = uit
ledf = uit
ledg = aan
ENDIF
IF teller = 4 THEN
leda = uit
ledb = aan
ledc = aan
ledd = uit
lede = uit
ledf = aan
ledg = aan
ENDIF
IF teller = 5 THEN
leda = aan
ledb = uit
ledc = aan
ledd = aan
lede = uit
ledf = aan
ledg = aan
ENDIF
IF teller = 6 THEN
leda = aan
ledb = uit
ledc = aan
ledd = aan
lede = aan
ledf = aan
ledg = aan
ENDIF
WHILE boven = verbinding : WEND
DELAYMS 250
ENDIF
WEND


#5 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3590 berichten
    Laatst bezocht 15 mei 2018 10:05
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 20 augustus 2014 - 13:19

pluto, puur uit interesse

hoe ziet dat er juist uit ?
kan ik dat vergelijken met een gear indicator ? (heb ik er bij aankoop laten bijplaatsen)

greetzzz
Mario.

#6 pluto

pluto

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 663 berichten
    Laatst bezocht 28 jan 2018 21:10

Geplaatst op 20 augustus 2014 - 16:57

Dit is inderdaad een gear indicator. Maar bij zware moto's werkt dit aan de hand van het toerental en de snelheid. Maar voor mijn moto kan je dit niet krijgen (Honda cbf 250) en vandaar dat ik werk met reedschakelaars (schakelaar die werkt via een magneet dat je vast maakt aan het versnellings voetje)

#7 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3590 berichten
    Laatst bezocht 15 mei 2018 10:05
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 20 augustus 2014 - 18:07

Bericht bekijkenpluto, op 20 augustus 2014 - 16:57, zei:

Dit is inderdaad een gear indicator. Maar bij zware moto's werkt dit aan de hand van het toerental en de snelheid. Maar voor mijn moto kan je dit niet krijgen (Honda cbf 250) en vandaar dat ik werk met reedschakelaars (schakelaar die werkt via een magneet dat je vast maakt aan het versnellings voetje)

ah ok !


ik heb de deze http://stores.sportb...il.bok?no=11288

en dit ?

http://www.amazon.co...r/dp/B0062BALVO

#8 pluto

pluto

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 663 berichten
    Laatst bezocht 28 jan 2018 21:10

Geplaatst op 20 augustus 2014 - 20:03

thx voor deze link, zo te zien moet het toch bestaan voor een 250cc.




0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


Untitled 1

Met dank aan J├╝rgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)