Exemple de dialogue entre un PIC et un smart phone via un module HC06 en Bluetooth.
Pour modifier et afficher les paramètres d’une carte de contrôle d’intensité avec un PIC programmé en MikroBasic.
Modification des consignes et hystérésis choix d'incrément de 1 ou 10.
Cons et Hyst sont affichées en valeur x 10 (Cons 2.6 est affichée 26),
Modification d’un offset.
Envoi de l’ordre de stocker ces paramètres dans l’Eeprom du PIC avec le bouton Val.
Visualisation de l’intensité mesurée.
Visualisation de l’état des sorties RB4 et RB5 du PIC.
Si Intensité >= Cons1 alors voyant vert sinon voyant rouge.
Réception des caractères de contrôle envoyés par le smart phone :
Code : Tout sélectionner
Sub procedure interrupt 'IntRCIF
if PIR1.RCIF = 1 then
if (UART1_Data_Ready() = 1) then
Rec = UART1_Read() 'Réception char
end if
PIR1.RCIF = 0
end if
end sub
Incrément Consigne 1 dans la plage de 0 à 30 A avec le bouton adresse B:
Code : Tout sélectionner
if Rec = "B" then
if (CptC1 + Mult >= 0) and (CptC1 + Mult <= 300) then CptC1 = CptC1 + Mult end if
end if
Affichage Consigne 1 dans la fenêtre adresse R :
Code : Tout sélectionner
wordtostr(CptC1,CptC1Txt)
UART1_WRITE_Text("*R"+CptC1Txt+"*")
delay_ms(20)
Ordre d'écriture des paramètres dans l'Eeprom du PIC avec le bouton adresse V :
Code : Tout sélectionner
if rec = "V" then WrEeprom end if
Curseur choix multiplicateur adresse 1 et 2 :
Code : Tout sélectionner
if rec = "1" then Mult = 1 end if
if rec = "2" then Mult = 10 end if
Affichage intensité adresse I :
Code : Tout sélectionner
I0Af =I0/10
floattostr_FixLen((I0Af),I0Txt,4)
UART1_WRITE_Text("*I"+I0Txt+"*")
delay_ms(20)
Changement de couleur du voyant adresse X :
Code : Tout sélectionner
if testbit(PORTB,4) = 0 then UART1_WRITE_Text("*XR255G0B0*") else UART1_WRITE_Text("*XR0G255B0*") end if
delay_ms(20)
Le code coté smart phone :
Code : Tout sélectionner
*.kwl
clear_panel()
set_grid_size(13,7)
add_text(2,0,large,L, Consignes - Hystèrèsis - Offset,146,192,254,)
add_text(12,1,large,C,X10,245,240,245,)
add_text(12,5,large,C,X1,245,240,245,)
add_text(1,1,large,L,Cons1,245,240,245,)
add_text(5,1,large,L,Hyst1 ,245,240,245,)
add_text(1,3,large,L,Cons2 ,245,240,245,)
add_text(5,3,large,L,Hyst2 ,245,240,245,)
add_text(1,6,large,L,Val,245,240,245,)
add_text(7,6,large,C,A,245,8,9,)
add_text(9,1,large,L,Offset ,245,240,245,)
add_text_box(9,2,2,C, 0,245,240,245,J)
add_text_box(5,6,2,C,2.89,246,48,34,I)
add_text_box(1,2,2,C, 26,245,240,245,R)
add_text_box(1,4,2,C, 22,245,240,245,S)
add_text_box(5,2,2,C, 2,245,240,245,T)
add_text_box(5,4,2,C, 3,245,240,245,O)
add_button(0,2,3,A,)
add_button(0,4,3,C,)
add_button(3,4,2,D,)
add_button(3,2,2,B,)
add_button(4,2,3,E,)
add_button(4,4,3,G,)
add_button(7,2,2,F,)
add_button(7,4,2,H,)
add_button(2,6,9,V,)
add_button(9,3,4,K,)
add_button(10,3,5,L,)
add_switch(12,2,3,1,2,0,1)
add_led(8,4,1,Y,0,255,0)
add_led(8,2,1,X,0,255,0)
set_panel_notes(,,,)
run()
*
http://www.keuwl.com/apps/bluetoothelec ... index.html