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 INT

Dit 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; 10

Grt 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