Hallo allen
Ik zit met een storing die ik maar niet opgelost krijg
eerst het filmpke
https://youtu.be/jkzi2xosTNk
Als ik de schakel draad met een vinger aan raak dan word de pic zot en geeft storingen naar de servo
Ja ik heb een 10 k pullup gebruikt dit om het probleem reeds uit te schakelen .
Meerdere processoren gebruikt
Programma aangepast tot het minimum dwz massa er op servo naar links ;massa los door de pullup aan de positief en dan de servo naar rechts
Niks nada het zelfde probleem
Een andere voeding ook geen resultaat behalve als ik de print op een accu aansluit dan is er geen probleem
12 volt voeding en de 7805 op de print maakt er 5 volt van
Op 3,3 volt moet de servo en de processor nog werken
Condensator over de voeding staat er ook op
Dus ja ik weet het op dit ogenblik dus niet meer
Heeft er iemand wel een idee ?????
Gr raf
Ik heb te weinig info over de schakeling om daar iets zinnig over te vertellen. Eigenaardig gedrag van een schakeling volg ik soms op met in circuit debugging .
Geert
Geert de schakeling bestaat uit een 7805 en 3 condensatoren
Waarvan 2 aan de 7805 en eentje over de pic voeding
poort 1 - 2 - 3 liggen met 10 K weerstand aan de positief 5 volt omdat dit ingangen zijn
[ code]Device = 12F629
All_Digital TRUE
Xtal 4
''gpio1 = sein blok5B
''gpio2 = seinblok5 A
''gpio3 = wissel 1 is rechtdoor 0 is rond
''gpio5 = servo uit
' gpio4 = uitgang rood achterliggend
GPIO =%111111 ;
TRISB = %001110 ; gpio 1,22,3 als ingang
Declare PortB_Pullups On
Dim positie As Word
Dim l As Word
Dim r As Word
Symbol SPOORB = GPIO.1 ;wissel SPOORB
Symbol SPOORA = GPIO.2 ; wissel spoorA
Symbol wissel = GPIO.3 ;wissel schakelaar
Symbol LTD =GPIO.4 ;LTD UITGANG
Symbol servo1 = GPIO.5 ;SERVO WISSEL
l = 600
r = 2000
DelayMS 1000
gpio.3 is MCLR maar die staat uit en is dus gewoon IO
Dit is de ingang van de schakeling waar de stand van de wissel mee bepaald word
De andere zijn tijdens de test niet aan gesloten
Dus alleen de servo op uitgang 5
De voeding
En op poort 3 de ingang of aan de 0 of aan de 5 volt
Bij andere wissels werkt dezelfde sturing perfect
Zelfde print zelfde opzet en het zelfde programma
Bij deze reeds meerdere processoren en printjes gemaakt om daar een fout in uit te sluiten
Maar alleen op die plaats op de baan doen ze allemaal onnozel
Dus 5 meter verder in de kamer doen ze normaal
Onder de module zit op een afstand van 1,50 meter niets wat zou kunnen storen
Zelfs met een losse voeding blijft het probleem bestaan ;ik dacht storing van een andere print die aan de zelfde voeding hing maar nop dat was het ook niet
(https://i.postimg.cc/qNvF579b/servo-printje.jpg) (https://postimg.cc/qNvF579b)
Afbeelding van de print .Dit is versie 1 die ik hier heb daar staan de weerstanden nog apart bij de andere versies zitten deze aan de onderkant van de print
gr raf en reeds bedankt om mee te denken
Nu net een PIC processor waar ik geen ervaring mee heb ;)
Gelijkaardige 8 pin µC met GPIO In/Uitgangen hebben geen TRISB en PORTB register, GPIO3 heeft geen interne PULL-UP weerstand, dat zijn al
enkele bemerkingen...
aan de moderators, je kan deze topic best verplaatsen van KISS en andere simpele elektronica naar microcontrollers ;)
Geert
Geert bij deze mag je dus trisio of trisb gebruiken
zoals ook gpio.1 maar protb.1 werkt ook
dus doe je toggle portb.0 dan gaat dat gewoon werken .
Maar ok wat ik tot nu toe gedaan heb
De servo kabel 50 cm langer gemaakt maar ook geen oplossing.
De voeding ook 50 cm langer gemaakt maar ook geen oplossing
Dan een condensator over pen gpio.0 en de massa gezet
En heel de print dus die 50 cm opgeschoven verweg van de servo en dit blijkt te werken .
De sturing werkt nu stabiel zonder jitteren
Nu de rest van de in en uitgangen aan sluiten en dan kijken of het blijft werken .
Ok ik weet het "het is niet DE oplossing "maar het werkt
Nu alleen nog uitzoeken waarom juist op die plaats de stuur print gek doet .
gr raf en bedankt om mee te denken
All of the microcontroller's pins are set to inputs on power-up. If you need a pin to be an output, set it to an output before you use it, or use a BASIC command that does it for you. Once again, always read the PICmicro™ data sheets to become familiar with the particular part. The name of the port pins on the 6-pin and 8-pin devices is GPIO. The name for the Tris register is TrisIO: - GPIO.0 = 1 ' Set GPIO.0 high TRISIO = %101010 ' Manipulate ins and outs
However, these are also mapped as PORTB, therefore any reference to PORTB on these devices will point to the relevant pin of GPIO.
Dat weet ik dan ook weer Raf, Een PIC µC heb ik nooit geprogrammeerd in BASIC.
Maar volgens datasheet op pin 3 geen interne PULL-UP ;)
3.2.1 WEAK PULL-UP
Each of the GPIO pins, except GP3, has an individually
configurable weak internal pull-up. Control bits WPUx
enable or disable each pull-up. Refer to Register 3-3.
Each weak pull-up is automatically turned off when the
port pin is configured as an output. The pull-ups are
disabled on a Power-on Reset by the GPPU bit
(OPTION<7>).
Geert
Ja geert weet ik maar ik heb losse 10 K weerstanden staan
Ik zet altijd die interne aan boven aan in het programma .
Kwestie van gewoonte denk ik .
Nu werkt het zo ongeveer met al die toeters en bellen er extra aan blijft nog steeds de vraag "WAAROM"
En een pic programmeer je niet in basic want je zet er een HEX file in en dan maakt het niet uit of het JAL C C++ of wat ook is .
Dat zijn juist de compilers
00002 list
00003 ;{
00004 ;FILE F1 = C:\USERS\RAFJA\DESKTOP\BAK WISSEL 769-1823.BAS
00005 ;}
00006 ;[Variable Listing]
00007 ;positie,0024,DT_WORD,2
00008 ;var1,0026,DT_WORD,2
00009 ;L,0028,DT_WORD,2
00010 ;R,002A,DT_WORD,2
00011 ;B,002C,DT_WORD,2
00012 ;D,002E,DT_WORD,2
00013 ;ledrood,0005.4,DT_BIT
00014 ;ledgroen,0005.2,DT_BIT
00015 ;ingang,0005.3,DT_BIT
00016 ;relais2,0005.1,DT_BIT
00017 ;servo1,0005.5,DT_BIT
00018 ;[End Listing]
00019 ;[TOTAL VARS] 16
00021 #define CONFIG_REQ 1
MESSAGE[308]: WARNING LEVEL SUPERSEDED BY COMMAND LINE VALUE. (2)
00022 LIST P = 12F629, F = INHX8M, W = 2, X = ON, R = DEC, MM = ON, N = 0, C = 255
00000000 00023 INDF equ 0X0000
00000001 00024 TMR0 equ 0X0001
00000002 00025 PCL equ 0X0002
00000003 00026 STATUS equ 0X0003
00000004 00027 FSR equ 0X0004
00000005 00028 GPIO equ 0X0005
00000005 00029 PORTB equ 0X0005
0000000A 00030 PCLATH equ 0X000A
0000000B 00031 INTCON equ 0X000B
0000000C 00032 PIR1 equ 0X000C
0000000E 00033 TMR1L equ 0X000E
0000000F 00034 TMR1LH equ 0X000F
0000000F 00035 TMR1H equ 0X000F
00000010 00036 T1CON equ 0X0010
00000019 00037 CMCON equ 0X0019
00000081 00038 OPTION_REG equ 0X0081
00000085 00039 TRISIO equ 0X0085
00000085 00040 TRISB equ 0X0085
0000008C 00041 PIE1 equ 0X008C
0000008E 00042 PCON equ 0X008E
00000090 00043 OSCCAL equ 0X0090
00000095 00044 WPU equ 0X0095
00000096 00045 IOCB equ 0X0096
00000096 00046 IOC equ 0X0096
00000099 00047 VRCON equ 0X0099
0000009A 00048 EEDATL equ 0X009A
0000009A 00049 EEDATA equ 0X009A
0000009A 00050 EEDAT equ 0X009A
0000009B 00051 EEADR equ 0X009B
0000009C 00052 EECON1 equ 0X009C
0000009D 00053 EECON2 equ 0X0
Er zijn er die dit zo kunnen programmeren maar dat zit in mijn hersens achter die verdomde muur
Gr raf
Dag Raf,
In je printwerp werkt de ontkoppelcondensator over de uitgang van de spanningsregelaar tegelijk ook als ontkoppelcondensator voor je PIC. De meerwaarde van je afzonderlijk ontkoppelcondensator is twijfelachtig door de relatief lange printsporen. In een volgend ontwerp, en zeker als de PIC wat verder van de voeding staat, kan je die ontkoppelcondensator beter zo kort mogelijk tussen pin 1 en 8 zetten. Hier maakt het dus niet uit en kan je die volgens mij ook weglaten.
Heb je al eens rechtstreeks op de print gemeten wat de spanning op de ingang is voor het zetten van de wisselpositie als deze open is? Het gedrag doet denken aan een zwevende ingang ( pullup doet zijn werk niet). Wat is de weerstandswaarde van de pullup? Toch geen foutieve waarde ( bv 1 M-Ohm of zo)?
Patrick de weerstand is 10 K en ik heb reeds verschillende printjes gemaakt maar het probleem bleef zich voordoen .
Inderdaad het lijkt op een zwevende ingang.
Ik had de print zo gemaakt maar de condensator zit langs de onderkant gesoldeerd rechtstreeks op de pootjes
Ik heb ook nieuwere printjes met een optokoppel er op maar die werken verkeerd op de ingang.
Deze worden gebruikt om te sturen met een esu V3 decoder.
(https://i.postimg.cc/yWMm7YwV/servo-printje-V2.jpg) (https://postimg.cc/yWMm7YwV)
Hier de layout er zit meer op de print want ze dienen ook nog voor andere zaken dan alleen wissels .
gr raf