16f628 programmeren tijd actief

Zouden jullie even voor mij willen kijken of ik het zo met de optocouplers goed.

Het liefst schakel ik plus aan de andere kant van de optocoupler maar de enige 2 die ik heb liggen zijn. 4n35 en cyn17-4

zie bijlage voor betere weergave.

https://www.msxflash.nl/electronica/stov.jpg

Bedankt.

Het is nu niet echt een begrijpelijk schema. Leuk dat IC2 een 4n35 is maar wat welke pen van het IC doet is zo niet te zien of begrijpen. Dus ipv de behuizing teken je de schematische voorstelling van wat er in het ic zit en dat is voor een opto een Led en een fototransitor.

https://img.brainkart.com/imagebk7/ZZbaeJT.jpg

Voor IC1 is het nog ok dat je alleen de behuizing teken maar het vaak handiger om gewoon een rechthoek te tekenen en dan bv links de ingangen en rechts de uitgangen. Van dit IC is geen schematische voorstelling te maken dus dat mag zo.

Het is ook leesbaarder om vlakbij de bv de weerstanden ook gelijk de waarde te zetten. Nu moet je elke zoeken naar de waarde.

Bij de leds in de schakelaar ontbreekt een weerstand
T2 is een raar ding maar het is zo geen transitor.

Voor de leesbaarheid is het ook handiger om meer in volgorde te tekenen. Dus eerst S1 dan de opto en dan naar IC1.

Veel mensen hier gebruiken splan 7.0 om schema's te tekenen in onderstaande link staat onder gebruiker Blackdog een download voor de meest gebruikte symbolen voor Splan. De link zelg gaat of versie 8.0 maar die schijnt niet echt lekker te werken ik blijf voorlopig bij versie 7

https://www.circuitsonline.net/forum/view/155436#highlight=8.0+splan

www.bramcam.nl/Diversen/1STAID.LIB

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

voor opgesteld ga ik in mijn schema's er vanuit dat men weet wat het is. vandaar dat de rest er niet bij zit, maar goed het mag er bij, snap je probleem.

de leds bij de schakelaars missen geen weerstand, want zoals je weet is een vierkant erom heen, aangeduid als 1 geheel, maw dit is dus een schakelaar met ingebouwde led. maar goed dat je het toch aangeeft.

missschien zie ik wat over het hoofd, maar bij mij is t2 toch echt een transistor tenzij ik hem er dubbel in heb zitten.

je tips worden dankbaar ontvangen, maar het gaat mij eigenlijk alleen op de de vraag betreft de optocouplers. vergeet niet dat ik het schema uit eindelijk nog moet nakijken en moet aanscherpen waar nodig.

ik heb mijn appedendix er onderstaan, dit is dus een keuze ga je iets zo doen of zet je het er direct bij.

maar gezien ik een vraag heb zal ik alles aanpassen,

Daarnaast bedankt voor de tip welke programma er voor te gebruiken is,
echter houd ik mij bij mijn eigen programma voor nu.

ik mag hopen dat alles wat hier getekend is in het schema, dat het toch wel duidelijk moet zijn voor iedereen wat er mee bedoeld word hihi.

de volgorde van de tekens zie ik geen probleem in maar zal het meenemen.

alvast bedankt.

nav hierboven, schema aangepast

graag verneem ik of er onduidelijkheden zijn.

ivm mijn vraag.

bedankt.

https://www.msxflash.nl/electronica/stov2.jpg

Hier zijn wat noodzakelijke aanpassing die mijn opvielen.

Aan de uitgang van de 7805 moet er ook nog een 100nF dicht bij de uitgangspoot naar de GND.

De aansturing van de speaker MOET via een transistor, schemas genoeg te vinden op het internet, even googlen

LDmicro user.

De 7805 zal wel wat ik op de 12v heb gezet.
Die moet normaal aan de 5v kant.

De speaker is volgens een schema
Gebouwd. Het is een licht speakertje.

Maar kan jij mij ook aangeven of ik het
Met de optocouplers goed doe

Arco

Special Member

Speaker rechtstreeks aan i/o pin is onmogelijk, moet versterker tussen.
Dat je ergens een schema hebt gevonden dat dat wel doet zegt nog niet dat het ook kan: er staat genoeg totaal onzinnige troep op het internet helaas... ;)

Je kunt wel eventueel rechtstreeks een piezo elementje gebruiken.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Aan de 7805 moet een 100nF op de uitgang staan tegen oscilleren, de elco aan de ingang moet blijven.

Een 8ohm speaker trekt veel teveel stroom voor een controlleruitgang, een piezospeaker zou beter zijn die zijn hoogohmig .

De optocouplers in mijn schema zullen goed werken, de weerstanden van 1kohm aan de leds mogen wel wat hoger (1k8) omdat de uitgangstransistor niet veel stroom moet sturen.

LDmicro user.

Arco waarom moet er een versterker tussen?

Het geluid is hard genoeg en afstellen hoeft niet.

Of is er een andere reden dat het moet.

De elco It er tussen ivm opblazen.

Dit schema komt van picbasic van het speakertje.

Ik begrijp dat zomaar een schema mogelijk niet goed is

Arco

Special Member

Een i/o poort van een 628(a) mag maximaal 8mA continu (piek 25mA) leveren, daar ga je met een 8 Ohm speaker vele malen overheen.

Dat iets werkt is ook geen garantie dat het aan te raden is:
Dat de boel heel blijft is een kwestie van geluk, en met dank aan de robuustheid van de pindrivers die deze mishandelingen weten te overleven...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Nee ben ik met je eens.

Raar dat mijn info asngaf dat het gewoon kan.

Ik ga het aanpassen.

Nu had ik het wel zo voorbereid dat als een versterker nodig is dat deze er zo tusssn kan dus dat scheelt

[Bericht gewijzigd door spacegremlin op zaterdag 27 november 2021 11:30:38 (36%)

Arco

Special Member

Op PC mainboards wordt voor de systeemspeaker meestal een simpele versterker met 1 transistor gebruikt.
(Nadeel is dat in rust de aansturing altijd laag moet zijn, anders bijft er dc door de speaker lopen)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

bedankt ik ga dit zo ie zo bekijken.
kan jij mij ook aangeven of ik het met die optocoupler zo goed doe.

Anders moet ik dat ook even verder bekijken.

kan jij mij ook aangeven of ik het met die optocoupler zo goed doe.

kunnen we even samen doen :). In de volgende link zie je de datasheet

https://www.vishay.com/docs/81181/4n35.pdf

Het eerste waar je naar kijkt is wat is het maximum

Voor de led is de max stroom 50mA
en voor de transistor is die ook 50mA bij max 70V

Bij een transistor heb je een versterkingsfactor Hfe die kent een opto ook die heet DC current transfer ratio of CTR.
Die word op blz 3 opgegeven en die ligt voor een ledstroom van 10mA op ca 40 tot 50%.

Op blz 4 zie je figuur 6. Als je dan kijk naar een ledstroom van 10mA dan kan de transistor ongeveer 7mA max.

Omdat we enkel de ingang van een microcontroller willen schakelen is 7mA ruim voldoende.
In figuur 1 zien we dat bij een ledstroom van 10mA een ledspanning van ca 1V hoort

We weten nu dus dat met een ledstroom van 10mA bij 1V kunnen we 7mA schakelen.

Voor de led krijgen we dan
U = 12V
Iled = 10mA
Uf = 1V

R = (U - Uf) / Iled = 11 / 0.01 = 1100. Ik zou dan 1k ohm nemen. De stroom is dan iets groter maar nog ver van de max 50mA.

Voor de uitgang van de opto krijg je dan een pull-up weerstand. Dit is nodig omdat als de opto uit is deze pin zweeft tussen 0 en 5V en dat geeft dan ook nullen en enen aan de ingang van microcontroller. Vaak kan je in de microcontroller zelf al een pull-up op de ingang aanzetten. Vaak zit deze ergens tussen de 20k ohm tot 100k ohm afhankelijk van merk en type microcontroller.

Maar extern een aparte pull-up plaatsen kan ook vaak is 10k ohm goed. Als je wilt weten hoe klein de weerstand maximaal mag zijn dan krijg je
I = 7mA
U = 5V
R = u / I = 5 / 0.007 = 714 ohm. Dus een pull-up van minimaal 1k ohm mag ook, maar is wel ongunstig voor je stroom verbruik en meestal niet nodig. Tenzij je heel erg snel wilt gaan schakelen met de opto of als er soms storingen optreden aan de ingang van microcontroller anders gewoon 10k ohm nemen.

Ik zie nu dat je 100k + 2k2 in serie hebt staan dat is weer te hoog. 2k2 op de plaats van de 100k is goed. Tussen de uitgang van controller en de opto loopt geen stroom en daar zie je nooit weerstanden.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Hou er rekening mee dat als je de optocouplers naar de GND schakelt zoals in uw schema dat je de inputs moet inverteren in de software.
Bij AAN is de controllerinput '0'

LDmicro user.

optocoupler,

duidelijk verhaal ik snap het.
ik ga je verhaal later nog een keer rustig bekijken.

Die 2.2k die ik had neergezet twijfelde ik al aan, en klopt dat ik die dus
ook incorrect had.

mgp bedankt je moet inderdaad altijd even opletten hoe je nu aan het schakelen bent. hihi

ook weet ik dat a1 en a2 100kohm, best hoog is. maar in de oude toestand, was dit naar info op google beter. zoals het nu is zou normaal naar mijn weten 10k ook voldoende zijn. maar goed 100kohm kan naar mijn weten in deze setup ook geen kwaad.

bedankt.

Er is blijkbaar iemand die mijn aangepaste versie van het schema niet vertrouwd en het is nochtans stukken beter dan het originele. :o

[Bericht gewijzigd door MGP op zondag 28 november 2021 11:12:17 (11%)

LDmicro user.

hahaha, ja wel hoor maar helaas weet ik niet alles.

wat jij aangeeft van die 2.2k en 100k, eens zie het nu ook.
wat je doet in je uitleg snap ik. ben benieuwd bij een volgende
of ik het dan ook zonder hulp snap. maar je uitleg is duidelijk.

Deze 16f628 heeft in ieder geval geen interne pullup, op de ingangen
die ik gebruik, vandaar dat ik extern pullup. dacht dat die alleen op
de B poorten zit bij deze. maar goed met externe weerstand zoals je meld werkt het ook, maar kost weer ruimte hihi

En ik wil het goed hebben.

-----------------------------------------------
Optocoupler werkt, natuurlijk de software geinverted.
later nog even naar de speaker kijken.

----------------------------------------------------
schema , met code er bij gezet, wie weet heeft een ander er wat aan.
moet nog wel het 1 en ander aftesten maar heb er vertrouwen in.

code:

'2
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2021 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 30-11-2021                                        *
'*  Version : 1.0                                               *
'*  Notes   : Msxflash                                          *
'*          :                                                   *
'****************************************************************
DEVICE 16F628A                ;Gebruik een 16F628A type
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
xtal = 20; 1000 miliseconde = 1 seconde WORD NIET GEBRUIKT ZIE BOVEN

ALL_DIGITAL TRUE              ;Alle ingangen digitaal

;Poortnamen
SYMBOL S1     = PORTa.1 ; Stroboscoop
SYMBOL S2     = PORTa.0 ; Omvormer
SYMBOL S3     = PORTB.1 ; +15
SYMBOL LED    = PORTA.2 ; Led schakelaar STROBOSCOOP
symbol AAN = 0
symbol UIT = 1

dim TELLER1   as  word
dim TELLER2   as  word
dim TELLER3   as  word
dim COUN      as  word
dim WACHTTIJD as dword 
dim delayH    as  word
DIM Hertz     AS  WORD 
DIM TellerLED AS  WORD 

;        76543210
TRISB = %11110111       ; PORTB.3 is uitgang voor PWM geluid signaal
                        
pORTB_PULLups ON        ; Activeer ingebouwde PORTB pull-up weerstanden (voor toets S1) 

TELLER3       =   0

start:

CLEAR                   ; Wis alle RAM geheugen
HPWM 1, 0, 0            ; Reset de CCP/PWM module (Op 0% = constant laag)
led           =   0
TELLER1       =   0 
TELLER2       =   0
DelayH        =  10
WachtTIJD     =   0
COUN          =   0
tellerled     =   0

Main:

if s1   = AAN then
   if teller1              =  0 then goto start1                 ; Stroboscoop
   if tellerled            = 50 then toggle led  : tellerled = 0
   tellerled = tellerled   +  1
End if

if s2   = aan and  teller2   =  0 Then goto start2                 ; Omvormer
if s3   = aan AND  TELLER3   =  0 THEN TELLER3 = 1: GOTO START

if s1   = uit then TELLER1   =  0 : led = 0                          
if s2   = uit then TELLER2   =  0
if s3   = uit then TELLER3   =  0

delayms 1

WACHTTIJD = WACHTTIJD + 1

if coun = 0 and  WACHTTIJD =  12000 then TELLER1 = 0 : TELLER2 = 0 : coun = 1:WACHTTIJD = 0 '  1 min
if coun = 1 and  WACHTTIJD =  50000 then TELLER1 = 0 : TELLER2 = 0 : coun = 2:WACHTTIJD = 0 '  4 min
if coun = 2 and  WACHTTIJD = 120000 then TELLER1 = 0 : TELLER2 = 0 : coun = 3:WACHTTIJD = 0 ' 10 min

If coun = 3 Or coun = 4 or coun = 5 Or coun = 6 or coun = 7 Then
   if WACHTTIJD = 360000 then TELLER1 = 0 : TELLER2 = 0 : coun = coun + 1 : WACHTTIJD = 0 ' 30 min
   
End If

if coun = 8 then goto start ; 4.5+- uur verstreken begin opnieuw

goto main

Start1:

 hertz = 250
 hpwM 1, 127, Hertz:delayms delayH:HPWM 1, 0, 0:delayms delayH:hpwM 1, 127, Hertz:delayms delayH:HPWM 1, 0, 0:delayms delayH
 TELLER1 = 1

goto main

 Start2:

 hertz = 500
 hpwM 1, 127, Hertz:delayms delayH:HPWM 1, 0, 0:delayms delayH:hpwM 1, 127, Hertz:delayms delayH:HPWM 1, 0, 0:delayms delayH
 TELLER2 = 1

goto main

END

https://www.msxflash.nl/electronica/stov6.jpg

@mgp

TLP521 versie 2 en 4 meteen bij besteld.

is toch effe wat kleiner als je er meer nodig hebt. haha

Arco

Special Member

Bij de TLP521 maakt 't niet uit of je een viervoudige, 2 tweevoudige, of 4 enkelvoudige bestelt: past in dezelfde footprint

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Er moet ook nog een serieweerstand van ~10Ω zitten tussen de speaker en de +5V anders loopt er teveel stroom door de speaker/transistor zelfs al is dat een PWM signaal.

Je hebt nog altijd de INTRC_OSC_NOCLKOUT aanstaan en je gebruikt een kristal!

Waarom je die nieuwe opto geplaatst hebt is mij een raadsel, die doet niks, want als er geen boordspanning is werkt ook de controller niet.

edit: als je plaats wilt besparen kun je dat kristal wegdoen en de 4Mhz interne oscillator gebruiken, dat is meer dan snel genoeg voor zo'n klein programma.

[Bericht gewijzigd door MGP op dinsdag 30 november 2021 08:48:32 (17%)

LDmicro user.

@arco, ja dhu, stom van me haha.

@mgp

De 3de heeft wel nut.

Deze hoeft ook pas te werken als er hoofdspanning is.
Deze hoeft alleen te werken als 1 en of 2 aan is, en dan is er dus
spanning.

Deze kijkt of het contact aangezet is, als dit gebeurd.
Begint hij weer opnieuw met het programma.
Zodoende geeft hij weer de geluiden.

Doel als je dus het voertuig gaat starten, weet je dat 1 en of 2 nog aanstaat. Natuurlijk kan je zeggen ja dat zie je zo toch ook wel haha.
nou ik doe dit dus bewust met een reden haha.
Vaak genoeg gehad dat ik de volgende ochtend toch nog zag dat mijn
omvormer aan was, of dat ik nog reed met stroboscoop. vandaar

Dit is ook te zien in het programma. :)

Gelukkig kan ik alles nog net kwijt op de print , hihi.

klopt ik heb het aan laten staan ik gebruik de externe kristal dus niet, maar omdat ik hem wel gemonteerd heb. Laat ik hem staan in het schema.
Alleen ga ik het kristal niet aanzetten want dan moet ik mogelijk mijn tijden weer aanpassen. thxs.

De routine voor s3 moet ik nog testen, of dit is wat ik wil.
das nog niet getest.

Okee thxs de weerstand ga ik dan nog plaatsen.

(laatste schema boven aangepast, dan is ook duidelijk te zien dat de 3de opto, voor de +15 is)

Alleen ga ik het kristal niet aanzetten want dan moet ik mogelijk mijn tijden weer aanpassen. thxs.

Dat is alleen alles met tijd met 5x vermenigvuldigen. Klok gaat precies 5x sneller dus de waarden moeten 5x groter. Dat is alles.

Mensen zijn soms net als een gelijkrichter, ze willen graag hun gelijk hebben.

Op 30 november 2021 22:58:19 schreef spacegremlin:

@mgp

De 3de heeft wel nut.

Deze hoeft ook pas te werken als er hoofdspanning is.
Deze hoeft alleen te werken als 1 en of 2 aan is, en dan is er dus
spanning.

Nu gebruik je 15mA voor de opto en moest je nu die controller altijd laten aanstaan dan kom je zeker toe met minder dan 5mA, maar dan moet je goede software maken zodat uwe speaker niet om de haverklap staat te zingen ;)

edit: op uw laatste tekening krijgt uw controller geen 5v voeding, je hebt een boogje teveel getekend.

LDmicro user.

Ik zie het haha ga ik aanpassen.

Tot nu toe heb ik deze print 3uur of zo getest en werkt zonder zingen

de controller hoeft niet constant aan te staan.

s1 en of s2 staat aan.

daarna word er gekeken naar +15 3de opto

is s1 en s2 uit, dan werkt er dus niks, en is +15 3de opto dus niet van
belang.

maw , alles is nog steeds het zelfde gebleven alleen de +15 is als registratie erbij gekomen.
------------------------------------------------------------

@mgp

wat mijn routine doet is.

s1 en of s2 aan
pic gaat tellen.
Dan over 1 min een geluidje, dan over 5min,dan over 30min
die 30min. word 4 of 6 keer herhaald.(dan zijn we ongeveer 4 uur verder)

Het geluid word dus kortstondig weergegeven.

Op het moment dat s1 en/of s2 aan is, ja dan zijn de opto's constant actief.

Opto3 is constant actief als s1 en/of s2 aan is , en het contact aan.

Zijn s1 en s2 beide uit, dan werkt er niks.

Ga ik dan problemen krijgen want ik snap het volgende niet helemaal.

Nu gebruik je 15mA voor de opto en moest je nu die controller altijd laten aanstaan dan kom je zeker toe met minder dan 5mA,