Ik zit nu al een tijdje te tobben met draadloze communicatie op mijn robot maar ik kom er gewoon echt niet uit. Daarom heb ik de vraag of iemand me hiermee zou kunnen helpen.
Ik heb alle vele topics gelezen maar ik blijf vastlopen.
Ik gebruik 1 pic16f628a met een 433 mhz ontvanger en een pc->max232->433mhz zender voor de communicatie.
Voor het zenden gebruik ik een hyperterminal en voor het ontvangen de volgende code:
device 16f628a
Config WDT_OFF, PWRTE_ON, LVP_off, MCLRE_OFF, HS_OSC
XTAL 20
ALL_DIGITAL TRUE
; 76543210
PORTA = %00000000
PORTB = %00000000
TrisA = %11110010
TRISB = %10100111 ;PORTB.3 is uitgang voor PWM geluid signaal,
HSERIAL_BAUD = 2400 ;baudrate 2400
HSERIAL_RCSTA = %10010000 ;Enable serial port and continuous receive
HSERIAL_CLEAR=On ;heft eventuele ontvangst buffer overflow op
dim Waarde as byte
dim Teller1 as word
clear
;Led1 = Portb.6 ;Groene Led
;Led2 = Porta.0 ;Rode Led
;Sensor1 = Porta.1 ;bumper-sensor
;Sensor2 = portb.5 ;LDR-sensor
;Motor = portb.4 ;4n25 voor stofzuigermotor
;Servolinks = porta.2 ;Servo links
;Servorechts = porta.3 ;Servo rechts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Hoofdprogramma:
while 1 = 1
HSerIn 10, Vooruitrijden , [Wait("oke"),waarde] ;nadat "oke" ontvangen is de volgende waarde doorgeven
select waarde
case 10
goto draaien
endselect
clear waarde
wend
Vooruitrijden:
low porta.0
high portb.6
if porta.1 = 0 then
SERVO PORTA.3, 1700
Servo porta.2, 1300
delayms 20
else
goto draaien
endif
goto hoofdprogramma
Draaien:
high portb.6
high porta.0
for teller1 = 0 to 60
servo porta.2, 0
servo porta.3, 0
delayms 20
next
for teller1 = 0 to 80
servo porta.2, 0
servo porta.3, 1300
delayms 20
next
clear teller1
goto vooruitrijden
end
Ik stuur die waardes via een hyperterminal met uiteraard het ww ervoor. Maar er gebeurd niks. De aansluitingen en instellingen heb ik inmiddels 1000x gecheckt. Zou iemand mij hiermee kunnen helpen?
Alvast heel erg bedankt.
Grt Robert
welk soort zender en ontvanger gebruik je ?
Kan je hier een linkje naar geven
Heb je de rx pin van de pic al eens rechtstreeks met de max232 verbonden ? Dus effe de zender en ontvanger vervangen door een draad.
sky
ik heb dezelfde ontvanger/zender als ze bij dit topic gebruiken:
http://www.circuitsonline.net/forum/view/55724/1/433+mhz
Ja heb het ook met draad geprobeerd, maar er gebeurd niks.
Ik typ in: oke 10
ww; oke en de waarde; 10
Grt Robert
1. je gebruikt geen interrupt
2. je gebruikt Hserin ipv Hrsin
Een stukje als dit werkt hier prima. (wel met 10 MHz kristal)
Declare Hserial_Baud 19200 'set baudrate op ...
RCSTA = $90 ' Enable serial port & continuous receive
TXSTA = $24 ' Enable transmit, BRGH = 1
SPBRG = 32 ' 19200 Baud @ 10MHz, -1,36%
Declare Hserial_Clear = On ' reset buffer bij een overflow?
INTCON.7 = 1 ; Enable Global Interrupts
INTCON.6 = 1 ; Enable Peripheral Interrupts
PIE1.5 = 1 ; Enable UART Rx Interrupt
On_Interrupt GoTo InputInt ; If there is UART activity: goto INTDit is de interrupt:
InputInt:
Index = 0
HRSIn Dec Unit
Repeat
HRSIn Karakter
SerString[Index] = Karakter
Index = Index +1
Until Karakter = $04 ;Or Index > MaxSize
Flag.0 = 1
PIE1.5 = 1 ' enables UART1 interrupt (=pager)
PIR1.5 = 0 ' clears the interrupt flag
Context Restore[Bericht gewijzigd door Rob W. op (90%)]
Bedankt voor de reactie:
Ik heb eerlijk gezegd helemaal geen verstand van 'interrupts', maar het moet toch ook zonder kunnen?
Zou je anders een tip kunnen geven, hoe ik dit in mijn code kan verwerken?
Grt Robert
Op 6 januari 2012 23:14:56 schreef elektro robert:
ik heb dezelfde ontvanger/zender als ze bij dit topic gebruiken:http://www.circuitsonline.net/forum/view/55724/1/433+mhz
Ja heb het ook met draad geprobeerd, maar er gebeurd niks.
Ik typ in: oke 10
ww; oke en de waarde; 10Grt Robert
Ik las deze topic en zou graag weten waar ik deze modules kan bestellen. Ik maak op dit moment voor school mijn GPR en deze houdt in om speelgoed voor minder validen draadloos te maken. Omdat ze graag een lage 'Low Cost' hadden ben ik op zoek gegaan en ben ik hierop gebotst. Nu ben ik op zoek naar zo goedkoop mogelijke module. Misschien heb je wel nog goedkoper type tegen gekomen, mag je mij ook laten weten.
De belangrijkste eigenschap is dat hij op zo klein mogelijk spanning werkt. Voor veiligheid van de minder validen.
Ik heb deze zopas gebruikt:
http://iprototype.nl/products/arduino/modules-adapters/apc220-radio-co…
Zeer fijn werken met deze modules.
-Heeft een TTL interface
- tot wel 1000 m bereik (heb ik nog niet getest)
- werkspanning van 3,5v tot 5,5v
nadeel ze zijn misschien wel wat duurder