PBP problem,koden finns!
PBP problem,koden finns!
Smäller in följande kod på en pic16f628A och kör intern osci.
Kör på utgång B0 ett relä som växlar polaritet till motorerna.
Utgång B1 som styr vänster motor.
Utgång B2 som styr höger motor.
(Relän)
Samt B4,B5 för vänser,resp höger knapp som funkar som sensorer.
(Motstånd från minuspolen[knapparna ligger på plus])
Tanken är att koden skall gå så att när den åker in i något.
Ifall det är höger knapp så ska den stanna,slå på reläet som växlar polaritet,sen slår den på ena motorn,så den vrider sig,sen stänga av allt igen så den kan gå rakt fram till nästa "hinder" inträffar.
När jag kör ner denna kod funkar inget.
Det klickar om reläna o motorerna får spratt..
Koden:
CMCON = 7
push0:
LOW PORTB.0
high PORTB.1
high PORTB.2
IF PORTB.3 = 0 THEN push0
IF PORTB.3 = 1 THEN FOLLO1
IF PORTB.4 = 0 THEN push0
IF PORTB.4 = 1 THEN FOLLO2
GOTO push0
FOLLO1:
LOW PORTB.1
LOW PORTB.2
PAUSE 10
high PORTB.0
PAUSE 100
high PORTB.1
high PORTB.2
PAUSE 2000
LOW PORTB.1
PAUSE 700
LOW PORTB.2
GOTO push0
FOLLO2:
LOW PORTB.2
LOW PORTB.1
PAUSE 10
high PORTB.0
PAUSE 100
high PORTB.2
high PORTB.1
PAUSE 2000
LOW PORTB.2
PAUSE 700
LOW PORTB.1
GOTO push0
Kör på utgång B0 ett relä som växlar polaritet till motorerna.
Utgång B1 som styr vänster motor.
Utgång B2 som styr höger motor.
(Relän)
Samt B4,B5 för vänser,resp höger knapp som funkar som sensorer.
(Motstånd från minuspolen[knapparna ligger på plus])
Tanken är att koden skall gå så att när den åker in i något.
Ifall det är höger knapp så ska den stanna,slå på reläet som växlar polaritet,sen slår den på ena motorn,så den vrider sig,sen stänga av allt igen så den kan gå rakt fram till nästa "hinder" inträffar.
När jag kör ner denna kod funkar inget.
Det klickar om reläna o motorerna får spratt..
Koden:
CMCON = 7
push0:
LOW PORTB.0
high PORTB.1
high PORTB.2
IF PORTB.3 = 0 THEN push0
IF PORTB.3 = 1 THEN FOLLO1
IF PORTB.4 = 0 THEN push0
IF PORTB.4 = 1 THEN FOLLO2
GOTO push0
FOLLO1:
LOW PORTB.1
LOW PORTB.2
PAUSE 10
high PORTB.0
PAUSE 100
high PORTB.1
high PORTB.2
PAUSE 2000
LOW PORTB.1
PAUSE 700
LOW PORTB.2
GOTO push0
FOLLO2:
LOW PORTB.2
LOW PORTB.1
PAUSE 10
high PORTB.0
PAUSE 100
high PORTB.2
high PORTB.1
PAUSE 2000
LOW PORTB.2
PAUSE 700
LOW PORTB.1
GOTO push0
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Follo1 körs ju så länge som portb.3 = 1
Du borde väl inte köra denna mer än 1 gång?
sen en annan tankemiss....
IF PORTB.3 = 0 THEN push0
IF PORTB.3 = 1 THEN FOLLO1
----hit kan vi aldrig komma..... eftersom portb.3 alltid är 0 eller 1....
IF PORTB.4 = 0 THEN push0
IF PORTB.4 = 1 THEN FOLLO2
GOTO push0
Swech
Du borde väl inte köra denna mer än 1 gång?
sen en annan tankemiss....
IF PORTB.3 = 0 THEN push0
IF PORTB.3 = 1 THEN FOLLO1
----hit kan vi aldrig komma..... eftersom portb.3 alltid är 0 eller 1....
IF PORTB.4 = 0 THEN push0
IF PORTB.4 = 1 THEN FOLLO2
GOTO push0
Swech
Jag utgår från att du testat utgångarna med tex:
LOW PORTB.0
high PORTB.1
high PORTB.2
push0:
GOTO push0
Har du gjort det och de funkar skulle jag lagt till en utgång till och anslutit en lysdiod, först i koden skulle jag tänt denna en sekund och sedan släkt den i själva huvudlopen. Skulle nu picen starta om syns det väldigt tydligt då lysdioden tänds i en sekund!
Nu behöver iof inte picen starta om pga spänningsspikar, den kan totalhänga sig med...
kontaktstuds betyder att man inte får ett snyggt överslag från 0->1 eller 1->0 utan att den hoppar några gånger fram ochtillbaka innan den ligger fast på det nya värdet.. Ett väldigt vanligt problem när man försöker läsa av knappar till ett tagentbord
LOW PORTB.0
high PORTB.1
high PORTB.2
push0:
GOTO push0
Har du gjort det och de funkar skulle jag lagt till en utgång till och anslutit en lysdiod, först i koden skulle jag tänt denna en sekund och sedan släkt den i själva huvudlopen. Skulle nu picen starta om syns det väldigt tydligt då lysdioden tänds i en sekund!
Nu behöver iof inte picen starta om pga spänningsspikar, den kan totalhänga sig med...
kontaktstuds betyder att man inte får ett snyggt överslag från 0->1 eller 1->0 utan att den hoppar några gånger fram ochtillbaka innan den ligger fast på det nya värdet.. Ett väldigt vanligt problem när man försöker läsa av knappar till ett tagentbord
> När jag sätter en diod på pinnen.
Lysdiod ? Med eller utan motstånd ?
> Drar den [TIP41C] så mkt ström.....
Varför fråga oss ? Det är du som har kopplingen, mät själv !
Vi vet ju inte ens hur du matar prylarna! Eller hur det
hela är kopplat.
Du gör det inte speciellt lätt att hjälpa till med
dina dåliga beskrivningar av vad du gör, men
det är ju ditt problem...

Lysdiod ? Med eller utan motstånd ?
> Drar den [TIP41C] så mkt ström.....
Varför fråga oss ? Det är du som har kopplingen, mät själv !
Vi vet ju inte ens hur du matar prylarna! Eller hur det
hela är kopplat.
Du gör det inte speciellt lätt att hjälpa till med
dina dåliga beskrivningar av vad du gör, men
det är ju ditt problem...

