Hallo allemaal,
ik wil voor het eerst een 16F84 gebruiken maar weet dus van het programmeren eigenlijk niks af maar wil het wel leren.
ik wil op m'n robot behalve de pic 2 H-bruggen en 2 IR-sensors maken (1 links en 1 rechts).
en het dus zo laten werken dat de robot gewoon vooruit rijd en als b.v. de linker sensor iets ziet het linkerwiel een paar seconden achteruit rijd en daarna weer gewoon vooruit rijd. en dit alles ook met de rechterkant.
ik ga voor iedere h-brug 2 I/O poorten gebruiken en voor iedere IR-sensor 1 I/O poort, in totaal dus 6 poorten.
Maar de rest zou ik echt niet weten.
kunnen jullie me helpen met ideeën links (het liefst NL) enz.
Danny
p.s.
ik weet dat dit alles ook kan met b.v. een NE 555 maar ik wil het toch graag kunnen veranderen en uitbreiden dus ga ik voor de 16F84.
Bastiaan
Bachelor of Engineering -- Microcontrollers AVR, PIC (asm, C), PC applicaties (C, C++), Webpages (HTML, CSS, PHP, SQL), Rail-infra engineer
Ik durf het bijna niet te vragen, maar heb je de tutorial op deze site al gezien?
En voor voorbeelden kun je via google een heleboel projecten vinden.
[Bericht gewijzigd door Bastiaan op ]
Op za 02-11-2002 19:51:30 schreef Bastiaan:
Ik durf het bijna niet te vragen, maar heb je de tutorial op deze site al gezien?En voor voorbeelden kun je via google een heleboel projecten vinden.
ik heb die tutorial al doorgelezen (het is een vrij duidelijke) en ik zat met name te kijken naar die lus in het politieproject of ik daarmee iets kon, maar die lus begreep ik ook niet helemaal.
ik heb ook al gekeken naar de topics van anderen maar daar werd ik ook niet wijzer van.
(ik heb google net ook even geprobeert maar ik vondt zo snel geen bruikbare pagina's)
maar hoe kan ik dit nu het beste aan pakken??
Danny
das toch niet zo moeilijk. Ik wil anders wel een keer wat voor je schrijven. Maar nu zit ik middenin een repwek dusss.
wat jij wilt is egt heel erg makkelijk...
voor de ir sensor kan je een IS471F van sharp nemen... heel makkelijk.. verkrijbbaar bij conrad.
die lus is toch niet zo moeilijk. Hij heeft gewoon een dubbele loop in elkaar verwerkt. Ik snapte t ook niet op het eerste gezicht. Gewoon nog een keertje goed doorlezen en je snapt t.
o en de allerbeste link is deze: www.circuitsonline.net 
[Bericht gewijzigd door Bernd op ]
Op 2 november 2002 20:47:27 schreef Bernd:
das toch niet zo moeilijk. Ik wil anders wel een keer wat voor je schrijven. Maar nu zit ik middenin een repwek dusss.hoi,
ik nog eens gezocht op het internet maar kon eigenlijk niets vinden wat ik kon gebruiken.
maar zou Bernd (of iemand anders) voor mij een progje kunnen schijven zodat ik weer verder kan?
(want ik kom zo dus niet verder met m'n robot en het zou wel leuk zijn als hij het doet
)
alle hulp is welkom
Danny
k.p.meinesz
Een schizofreen is nooit alleen!
Ik wil wel ff een progje schrijven
maar dan moet je mij ff wat info geven
h-brug
00 is stilstand
01 is rijden linksom
10 is rijden rechtsom
11 is vuurwerk
klopt dit?
Op 8 november 2002 21:30:05 schreef k.p.meinesz:
Ik wil wel ff een progje schrijven
maar dan moet je mij ff wat info geven
h-brug
00 is stilstand
01 is rijden linksom
10 is rijden rechtsom
11 is vuurwerk
klopt dit?
ja, klopt
en dit 2x dus (er zitten 2 motors op de robot)
bvd Danny
k.p.meinesz
Een schizofreen is nooit alleen!
trisa equ 85h
trisb equ 86h
porta equ 05h
portb equ 06h
status equ 03h
;_______________________________
org 00h
goto start
;_________________________________
portinit movlw 00h
movwf porta
movwf portb
bsf 03,5
movlw 00h ;porta output
movwf trisa
movlw 0ffh ;portb input
movwf trisb
bcf 03,5
return
;__________________________________
input nop
nop
nop
btfsc portb,0 ;sensor links
call drive1 ;draairichting rechts
btfsc portb,1 ;sensor rechts
call drive2 ;draairichting links
movlw 00h
subwf portb,w ;beide sensoren niets dan
btfsc status,2
call drive ;vooruit
goto input
;___________________________________
drive1 btfsc portb,1 ;als sensor rechts=1
goto reverse ;dan achteruit
movlw b'00000110';anders rechterwiel achteruit
movfw porta
return
;_________________________________
drive2 btfsc portb,0 ;als sensor links=1
goto reverse ;dan achteruit
movlw b'00001001';anders linkerwiel achteruit
movwf porta
return
;___________________________________
reverse movlw b'00000101' ;achteruit
movwf porta
goto input
;___________________________________
drive movlw b'00001010';vooruit
movwf porta
return
;____________________________________
start call portinit
bcf portb,3
movlw 00h
movwf portb
goto input
;_________________________________
end
;_________________________________
;input b0 b1 output a3 a2 a1 a0
; 0 0 1 0 1 0
; 1 0 0 1 1 0
; 0 1 1 0 0 1
; 1 1 0 1 0 1
;_________________________________
;dit moet hem wezen
;niet gebruikte poorten van b via pulldown naar massa(0)
;anders rijd je wagentje niet meer vooruit!!
;veel succes ermee.
;K.P.Meinesz
is iets anders als jij wou
zolang een sensor iets ziet zal hij een wiel terug laten draaien
zien beide sensoren iets rijd hij achteruit.
BEDANKT!!!
hiermee kom ik al een heel stuk verder 
maar ik raak effe in de war bij het stukje input want als bv de linker sensor iets ziet gaat dan het linker of rechterwiel achteruit?? het moet dus de linker zijn.
want er staat:
btfsc portb,0 ;sensor links
call drive1 ;draairichting rechts
en zou je ook een aantal pinnen van poort b kunnen gebruiken als uitgang? want dan heb ik dus meer uitgangen om later bv leds of zo aan te sluiten.
en hoe zou ik er dan voor kunnen zorgen dat hij dus wel ongeveer 2 seconden achteruit rijd als hij iets ziet?
zou het een idee zijn om achter de IR-sensor een tor te hangen en dan aan de basis een condensator voor vertraging en daarachter de PIC?
Danny
[Bericht gewijzigd door Danny op ]
k.p.meinesz
Een schizofreen is nooit alleen!
nee het linkerwiel is gekoppelt aan de rechter sensor
want anders rijd hij naar het objeckt toe
nu ontwijkt hij het
als je een pause tijd gebruikt weet je nooit hoeveel slagen je wiel maakt en kan het voorkomen dat hij dus gewoon 360 graden draait of eewig in deze lus blijft
wil je een pauze?
voeg dit dan toe:
teller1 equ 40h
teller2 equ 41h
pause movlw 0ffh
movwf teller1
movwf teller2
dec1 decfsz teller1
goto dec1
movlw 0ffh
movwf teller1
decfsz teller2
goto dec1
return
zet een CALL PAUZE in drive1,drive2,reverse
voor de RETURN
dan zal elke keer als je sensor iets ziet een draairichting omgerdraaid worden
en als de pause afgelopen is gaat hij pas verder.
kijk even naar het waarheids tabel onderin
je kunt dan zelf bepalen welke motor achteruit gaat
Ik ben geen voorstander van een pause maar het is wat jij wil
ja je kunt op b meer in en uitgangen maken voor andere functie maar dat vroeg je niet
je zult toch duidelijk moeten maken wat er op de uit-ingangen moet komen ander kun je nooit een werkend of soepel lopend progje schrijven.
[Bericht gewijzigd door k.p.meinesz op ]
Op 9 november 2002 12:55:07 schreef k.p.meinesz:
nee het linkerwiel is gekoppelt aan de rechter sensor
want anders rijd hij naar het objeckt toe
nu ontwijkt hij hetals je een pause tijd gebruikt weet je nooit hoeveel slagen je wiel maakt en kan het voorkomen dat hij dus gewoon 360 graden draait of eewig in deze lus blijft
ik dacht dat een pause wel handig was maar wat jij zegt daar heb je eigenlijk wel gelijk in. en het werkt denk ik idd wel beter zonder pauze.
en om de linker sensor aan het rechter wiel te hangen heb ik eigenlijk nooit aan gedacht. (weer wat geleerd
)
(maar dit is m'n eerste "echte" robot
en weet dus nog niet alles)
ja je kunt op b meer in en uitgangen maken voor andere functie maar dat vroeg je niet
je zult toch duidelijk moeten maken wat er op de uit-ingangen moet komen ander kun je nooit een werkend of soepel lopend progje schrijven.
ik weet nog niet precies wat ik er nog bij aan wil hangen maar dat komt later wel
Danny
k.p.meinesz
Een schizofreen is nooit alleen!
Danny ik heb ook nog nooit een robot gebouwd
ik denk alleen aan wat jij wilt en zie een robotje dat dingen ontwijkt en vertaal dat naar een proggrammatje dat dat doet.
veel susces ermee