Paso 3: Escribir el código del receptor
'------------------------------------------------------------
18 X - receptor
SÍMBOLO RCV_PIN = 7
SÍMBOLO DATA_RCVD = w3
SÍMBOLO DATA_RCVD_SIGN = b3
SÍMBOLO CHECK_DATA = b1
SÍMBOLO de velocidad en baudios = N1200 ' debe b T2400 si usando USB-Serial
temperatura símbolo = b12
símbolo Cnt = w2 ' contador
símbolo Digit0 = b8 ' digit0 datos
símbolo Digit1 = b9 ' digit1 datos
símbolo Digit2 = b10 ' digit2 datos
símbolo Digit3 = b11 ' digit3 datos
símbolo slvAddrWR = $70 ' I2C escribir dirección
símbolo slvAddrRD = $71 ' I2C leer dirección
PAUSE 1000
i2cslave slvAddrWR, i2cslow, i2cbyte ' inicializar I2C-7SEG
0,(%01000111) writei2c
NXT:
BAJA 5
BAJA 6
SERIN RCV_PIN, BAUDRATE,("TP"), DATA_RCVD_SIGN, DATA_RCVD, CHECK_DATA
Si CHECK_DATA = "x" entonces
SERTXD ("Val", DATA_RCVD_SIGN, #DATA_RCVD, 13, 10)
' a verde
BAJA 5
6 ALTA
PAUSE 100
Otro ' comprobar poco ha podido recibir correctamente
sertxd ("mal.", "signo", DATA_RCVD_SIGN, "-", #DATA_RCVD_SIGN, ", rcvd1", DATA_RCVD, "-", #DATA_RCVD, ", chk", CHECK_DATA, "-", #CHECK_DATA, 13, 10)
' Vuelta rojo
BAJA 6
5 ALTA
Terminar si
PAUSE 100
que cnt = DATA_RCVD
GOSUB convertir ' convertir decimal en cada segmento del LED
' borrar los primeros 2 dígitos
Digit3 = $0
Digit2 = $0
writei2c 1,(Digit0,Digit1,Digit2,Digit3) ' escribir cada dígito a 7 segmentos
GOTO NXT
CONVERTIR: ' tabla de consulta de 7 segmentos
Temp = cnt % 10
Temp de la búsqueda, ($3F$ 06, $5B, $4F, $66, $6, $7, $07, $7F, $6F, $77, $7 C, $39, $5E, $79, $71), Digit0
Temp = cnt / 10% 10
Temp de la búsqueda, ($3F$ 06, $5B, $4F, $66, $6, $7, $07, $7F, $6F, $77, $7 C, $39, $5E, $79, $71), Digit1
Temp = cnt / 100% 10
Temp de la búsqueda, ($3F$ 06, $5B, $4F, $66, $6, $7, $07, $7F, $6F, $77, $7 C, $39, $5E, $79, $71), Digit2
Temp = cnt / 1000% 10
Temp de la búsqueda, ($3F$ 06, $5B, $4F, $66, $6, $7, $07, $7F, $6F, $77, $7 C, $39, $5E, $79, $71), Digit3
VOLVER
'------------------------------------------------------------
Cuando empecé con el módulo de me metía alguna interferencia y a veces no muestra el valor correcto, así que añadido un byte de verificación final para comprobar que los datos se recibieron correctamente. Cuando los datos se recibieron correctamente el LED parpadeará de color verde, si se reciben datos "malo" va flash rojo.
Las líneas de
Digit3 = $0
Digit2 = $0
se agregan para detener los primeros 2 dígitos en la pantalla de proyección, ya que no necesitan estar en.