Springen naar inhoud


- - - - -

Geluid Bij Richtingaanwijzer Moto


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

#1 pluto

pluto

    Master Developer

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

Geplaatst op 20 januari 2014 - 21:33

Ik heb een vraagje. Nu heb ik via 2 dioden en 1 zoemer aangesloten op de richtingaanwijzer. Met als gevolg iedere keer dat de richtingaanwijzer aan gaat ook de zoemer werkt. Nu zou ik willen dat bv bij iedere 4 de keer dat de lamp pinkt dat er dan ook de zoemer werkt. Ik zie dit wel zetten om te maken met een Pic IC.Maar de vraag is zou dit ook kunnen zonder een Pic.

#2 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 22 januari 2014 - 05:19

Heb je een schema van je huidige opstelling die werkt?

#3 pluto

pluto

    Master Developer

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

Geplaatst op 22 januari 2014 - 18:28

Bijlage  pinkers.jpg   17,85K   2 downloads  even vlug een schematje gemaakt

Het gedeelte in het rechthoek is nu erbij gezet. Zoals je kan zien werkt dit zeer eenvoudig. Het probleem is elke keer de lamp aan gaat dan werkt ook de zoemer. Ik zou willen dat de zoemer niet elke keer mee gaat, maar bv 3 keer gewoon pinken en de 4 de keer met geluid. Denk dat ik een pic zal moeten gebruiken daarvoor.

#4 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 22 januari 2014 - 19:49

Inderdaad zul je hier een ic voor moeten gebruiken anders krijg je dit niet opgevangen.
Denk dat een eenvoudige 10f/12f-serie voldoende is.

#5 pluto

pluto

    Master Developer

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

Geplaatst op 25 januari 2014 - 13:03

Visual Basic Code:
gevonden = 1
SYMBOL drukknop = PORTA.1
PORTA = %00000000
TRISA = %00000010
DELAYMS 500
CLS
CLEAR
teller = 1
WHILE 1 = 1
IF drukknop = 0 AND gevonden 1 THEN ;Relais gesloten


PRINT AT 1,4,DEC2 teller
gevonden = 0

INC teller
IF teller = 4 THEN
CLEAR
ENDIF
ENDIF
IF drukknop = 1 THEN ;Relais open

gevonden = 1
DELAYMS 500
ENDIF



WEND
END


Ik heb hier nu een stukje code die er voor zorgt:   ( drukknop is een relais die gewoon over je lamp staat en dient als schakelaar om PORTA.1 gewoon aan massa te leggen).           Nu druk ik gewoon telkens op de drukknop en de teller verhoogt telkens met 1 , wanneer de teller op 4 staat dan komt teller op 0 en begint opnieuw te tellen bij elke druk op de knop.     Maar nu stel je voor bij het uitdoen van de pinker staat de teller op 2   en een straat verder steek je de pinker terug aan dan zal hij ook verder tellen vanaf die 2, en dan klopt het niet meer.     Ik zou iets moeten kunnen doen als de drukknop in de stand 0 staat gedurende bv 10 seconden dat hij dan zichzelf reset(clear)

#6 pluto

pluto

    Master Developer

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

Geplaatst op 25 januari 2014 - 15:41

heb nu zoiets

Visual Basic Code:
DIM teller AS BYTE
DIM tellerhulp AS BYTE
DIM gevonden AS BIT
gevonden = 1
SYMBOL drukknop = PORTA.1
SYMBOL led = PORTA.2 ;Zoemer sturen
PORTA = %00000000
TRISA = %00000010
DELAYMS 500
CLS
CLEAR
teller = 1
WHILE 1 = 1

PRINT AT 1,8,DEC tellerhulp
IF drukknop = 0 AND gevonden 1 THEN ;Relais gesloten
tellerhulp = 0

PRINT AT 1,4,DEC2 teller

gevonden = 0

INC teller
IF teller = 4 THEN
HIGH led
; CLEAR
ENDIF
IF teller = 5 THEN
LOW led
CLEAR
ENDIF
ENDIF
IF drukknop = 1 THEN ;Relais open

gevonden = 1
INC tellerhulp
DELAYMS 500
IF tellerhulp > 20 THEN
CLEAR
teller = 0
CLS
PRINT AT 1,4,DEC2 teller ;hulp
ENDIF
ENDIF
WEND
END


Probleem is nu als de led hoog is (is de zoemer aan ). En op dit moment doe je de pinker uit dan zal de teller niet meer verhogen dus de zoemer blijft aan en de tellerhulp gaat verder en komt terug op 0 dan moet je terug wachten tot de teller op 5 is.

#7 pluto

pluto

    Master Developer

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

Geplaatst op 25 januari 2014 - 16:29

heb nu zoiets    opgelost met wat te laten wachten. delayms 2000

Visual Basic Code:
DIM teller AS BYTE
DIM tellerhulp AS BYTE
DIM gevonden AS BIT
DIM wachten AS BYTE
gevonden = 1
SYMBOL drukknop = PORTA.1
SYMBOL led = PORTA.2 ;Zoemer sturen
PORTA = %00000000
TRISA = %00000010
DELAYMS 500
CLS
CLEAR
teller = 1
WHILE 1 = 1

PRINT AT 1,8,DEC tellerhulp
IF drukknop = 0 AND gevonden 1 THEN ;Relais gesloten
tellerhulp = 0

PRINT AT 1,4,DEC2 teller

gevonden = 0

INC teller
IF teller = 4 THEN
HIGH led
CLEAR
DELAYMS 2000

LOW led

ENDIF
ENDIF
IF drukknop = 1 THEN ;Relais open

gevonden = 1
INC tellerhulp
DELAYMS 500
IF tellerhulp > 20 THEN
CLEAR
teller = 0
CLS
PRINT AT 1,4,DEC2 teller ;hulp
ENDIF
ENDIF
WEND
END


Als je een andere methode weet laat het gerust weten.

Ik zal nu eerst eens het pinklicht die op de moto staat even nabootsen.

#8 pluto

pluto

    Master Developer

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

Geplaatst op 26 januari 2014 - 17:23

Ik heb er dit van gemaakt  de oranje leds stellen de pink lichten voor en de gele stelt de zoemer voor



#9 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 29 januari 2014 - 09:01

Netjes!
Zou de volgende keer wel bij je listing even de gehele code zetten, dus het stukje van je ic en config gebeuren voor de mensen die dit ook willen doen ;)

#10 pluto

pluto

    Master Developer

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

Geplaatst op 30 januari 2014 - 17:59

Ok als  alles werkt, zal ik de code hier plaatsen. Ik ben hier nog iets aan het zoeken. Heb hier een voorbeeld: Bij een druk op de drukknop verhoogt de teller met 1. Bij de vierde druk  komt de poort van de zoemer hoog (500 milliseconden en dan terug laag)

nu wil ik als de teller bv op 2 staat en binnen bv 5 seconden druk je niet meer op de drukknop dat dan de teller op 0 komt

Visual Basic Code:
DEVICE 16F628
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE
XTAL 4
DIM teller AS BYTE
DIM tellerlinks AS BYTE
DIM gevonden AS BIT
DIM gevondenlinks AS BIT

gevonden = 1
gevondenlinks = 1
SYMBOL drukrechts = PORTA.1
SYMBOL druklinks = PORTA.0
SYMBOL zoemerr = PORTA.2
PORTA = %00000000 ; ALLE POORTEN LAAG
PORTB = %00000000
TRISA = %11110011 ; ALLE POORT A2,A3 is een uitgang voor de led
;TRISB = %11111111 ; ALLE POORTEN ZIJN INGANGEN VOOR SCHAKELAARS
DELAYMS 500
CLS
;print at 1,5,"hey"
WHILE 1 = 1
IF drukrechts = 0 AND gevonden = 1 THEN
gevonden = 0
INC teller
IF teller = 4 THEN
teller = 0
HIGH zoemerr
DELAYMS 500
LOW zoemerr
ENDIF

PRINT AT 1,4,DEC2 teller,"rechts"
ENDIF
IF drukrechts = 1 THEN
gevonden = 1

ENDIF
WEND

END



#11 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 31 januari 2014 - 07:28

doe er een 2de teller bij en laat die zich zelf optellen in je while lus.
Gebruik dan bv.:
Code:
if teller = 2 and counter > 5000 '1000 is 1 sec
	teller = 0
endif



#12 pluto

pluto

    Master Developer

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

Geplaatst op 31 januari 2014 - 15:49

snap het niet direct. Even uitleggen: als je drukt op drukrechts(dus 0) verhoogt de teller met 1 en bij 4 komt de teller op 0

Als je niet drukt op drukrechts(dus 1),wel dan zou ik willen als je gedurende 5 seconden niet drukt op drukrechts dat dan de teller op 0 komt. Je moet dat kunnen met on_interrupt denk ik maar ken dat niet.

#13 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 31 januari 2014 - 16:07

on_interrupt is inderdaad ook een mogelijkheid.

#14 pluto

pluto

    Master Developer

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

Geplaatst op 31 januari 2014 - 16:33

ja ok maar ik weet niet hoe je dit moet doen in code. Ben nu bezig met een teller aan het maken in de while lus,maar die loopt veel te vlug.

#15 pluto

pluto

    Master Developer

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

Geplaatst op 01 februari 2014 - 00:20

is gegaan met een 2 de teller. hier de code

Visual Basic Code:
DEVICE 16F628
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE
XTAL 4
DIM teller AS BYTE
DIM tellerlinks AS BYTE
DIM wachten AS BYTE
DIM wachtenrechts AS BYTE
DIM gevonden AS BIT
DIM gevondenlinks AS BIT
gevonden = 1
gevondenlinks = 1
wachten = 0
wachtenrechts = 0
SYMBOL drukrechts = PORTA.1
SYMBOL druklinks = PORTA.0
SYMBOL zoemerr = PORTA.2
PORTA = %00000000 ; ALLE POORTEN LAAG
PORTB = %00000000
TRISA = %11111011 ; ALLE POORT A2,A3 is een uitgang voor de led
;TRISB = %11111111 ; ALLE POORTEN ZIJN INGANGEN VOOR SCHAKELAARS
DELAYMS 500
CLS
;print at 1,5,"hey"
WHILE 1 = 1
INC wachten
INC wachtenrechts
IF drukrechts = 0 AND gevonden = 1 THEN
tellerlinks = 0
gevonden = 0
INC teller
wachtenrechts = 0
IF teller = 4 THEN
teller = 0
HIGH zoemerr
DELAYMS 500
LOW zoemerr
ENDIF
CLS
;PRINT AT 1,4,DEC2 teller,"rechts" ,dec2 wachten
ENDIF


IF drukrechts = 1 THEN
gevonden = 1
IF wachtenrechts >= 20 THEN
wachtenrechts = 0
teller = 0
ENDIF
ENDIF

IF druklinks = 0 AND gevondenlinks = 1 THEN
gevondenlinks = 0
teller = 0
INC tellerlinks
wachten = 0
IF tellerlinks = 4 THEN
tellerlinks = 0
HIGH zoemerr
DELAYMS 500
LOW zoemerr
ENDIF
CLS
; PRINT AT 1,4,DEC2 tellerlinks,"links" , dec2 wachten
ENDIF
IF druklinks = 1 THEN
gevondenlinks = 1
IF wachten >= 20 THEN
wachten = 0
tellerlinks = 0
ENDIF

ENDIF
;cls
;print at 1,2, dec4 wachten , " start"
DELAYMS 100
WEND

END



#16 pluto

pluto

    Master Developer

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

Geplaatst op 01 februari 2014 - 20:30

Hier dan mijn printje, en nu gemaakt met de massa tip van Pascal.

Bijgevoegde Bestanden



#17 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 01 februari 2014 - 20:49

Dat is netjes pluto, maar uh bedoel je massa of ground want het zou het laatste moeten zijn ;)

#18 pluto

pluto

    Master Developer

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

Geplaatst op 01 februari 2014 - 21:13

ground

#19 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 01 februari 2014 - 21:42

Dan ben ik trots op je, mooi gedaan.




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)