Étape 3: Écrire le Code du récepteur
'------------------------------------------------------------
18 X - récepteur
SYMBOLE RCV_PIN = 7
SYMBOLE DATA_RCVD = w3
SYMBOLE DATA_RCVD_SIGN = b3
SYMBOLE CHECK_DATA = b1
SYMBOLE BAUDRATE = N1200 ' doit b T2400 si à l’aide de USB-Serial
temp de symbole = b12
symbole de Cnt = w2 ' Counter
symbole Digit0 = b8 "conserver les données de digit0
symbole Digit1 = b9 ' tenir digit1 données
symbole Digit2 = b10 "conserver les données de digit2
symbole Digit3 = b11 "conserver les données de digit3
symbole slvAddrWR = 70 $ ' I2C écrire adresse
symbole slvAddrRD = $71 ' I2C lire adresse
PAUSE DE 1000
i2cslave slvAddrWR, i2cslow, i2cbyte ' initialiser I2C-7SEG
0,(%01000111) writei2c
NXT :
BASSE 5
BASSE 6
SERIN RCV_PIN, BAUDRATE,("TP"), DATA_RCVD_SIGN, DATA_RCVD, CHECK_DATA
Si CHECK_DATA = « x » puis
SERTXD (« Val », DATA_RCVD_SIGN, #DATA_RCVD, 13, 10)
"verdir
BASSE 5
6 HAUTE
pause 100
Else ' Vérifiez le bit n’a pas pu recevoir correctement
sertxd (« mauvais. », "signe", DATA_RCVD_SIGN, "-", #DATA_RCVD_SIGN, ", rcvd1", DATA_RCVD, "-", #DATA_RCVD, «, chk ", CHECK_DATA,"-", #CHECK_DATA, 13, 10)
"Virent au rouge
BASSE 6
HIGH 5
Fin si
pause 100
que le cnt = DATA_RCVD
GOSUB convertir ' convertir decimal dans chaque segment LED
' effacer les 2 premiers chiffres
Digit3 = 0 $
Digit2 = 0 $
1,(Digit0,Digit1,Digit2,Digit3) writei2c ' écrire chaque chiffre à 7 segments
GOTO NXT
CONVERTIR: ' table de recherche pour 7 segments
Temp = cnt %10
Temp de recherche, ($3F, $06, 5 b$, $4F, 66$, $6, $7, $07, 7F$, 6F$, 77$, $7 C, 39$, $5E, 79$, 71$), Digit0
Temp = cnt / 10 % 10
Temp de recherche, ($3F, $06, 5 b$, $4F, 66$, $6, $7, $07, 7F$, 6F$, 77$, $7 C, 39$, $5E, 79$, 71$), Digit1
Temp = cnt / 100 % 10
Temp de recherche, ($3F, $06, 5 b$, $4F, 66$, $6, $7, $07, 7F$, 6F$, 77$, $7 C, 39$, $5E, 79$, 71$), Digit2
Temp = cnt / 1000 % 10
Temp de recherche, ($3F, $06, 5 b$, $4F, 66$, $6, $7, $07, 7F$, 6F$, 77$, $7 C, 39$, $5E, 79$, 71$), Digit3
RETOUR
'------------------------------------------------------------
Quand j’ai commencé en utilisant le module je recevais des interférences et alors parfois, il ne serait pas montrer la valeur correcte, alors j’ai ajouté un octet de contrôle à la fin, pour vérifier que les données a été correctement reçues. Lorsque les données sont reçues correctement la LED clignote en vert, si « mauvaise » donnée n’est reçue il va clignoter en rouge.
Les lignes
Digit3 = 0 $
Digit2 = 0 $
sont ajoutés à arrêter les 2 premiers chiffres sur l’écran de projection, comme ils n’ont pas besoin d’être sur.