Vidro com comunicação CAN

Dependencies:   mbed

Committer:
felipeto1
Date:
Thu May 16 18:06:56 2019 +0000
Revision:
0:7f560ecae53d
Vidro CAM

Who changed what in which revision?

UserRevisionLine numberNew contents of line
felipeto1 0:7f560ecae53d 1 #include "mbed.h"
felipeto1 0:7f560ecae53d 2
felipeto1 0:7f560ecae53d 3 Serial pc(USBTX, USBRX);
felipeto1 0:7f560ecae53d 4 CAN can1(PB_8,PB_9);
felipeto1 0:7f560ecae53d 5
felipeto1 0:7f560ecae53d 6 DigitalOut LED(PA_5);
felipeto1 0:7f560ecae53d 7 DigitalIn SW(PC_13);
felipeto1 0:7f560ecae53d 8
felipeto1 0:7f560ecae53d 9 DigitalIn lado(D3);
felipeto1 0:7f560ecae53d 10 DigitalIn vidro(D4);
felipeto1 0:7f560ecae53d 11
felipeto1 0:7f560ecae53d 12
felipeto1 0:7f560ecae53d 13 DigitalOut Enable(D9); // Sinal Enable
felipeto1 0:7f560ecae53d 14 DigitalOut saida_IN1(D10);// Sinal IN1
felipeto1 0:7f560ecae53d 15 DigitalOut saida_IN2(D8);// Sinal IN2
felipeto1 0:7f560ecae53d 16
felipeto1 0:7f560ecae53d 17
felipeto1 0:7f560ecae53d 18 int main(){
felipeto1 0:7f560ecae53d 19
felipeto1 0:7f560ecae53d 20 bool IN1 = 0;
felipeto1 0:7f560ecae53d 21 bool IN2 = 0;
felipeto1 0:7f560ecae53d 22 bool EN = 0;
felipeto1 0:7f560ecae53d 23
felipeto1 0:7f560ecae53d 24
felipeto1 0:7f560ecae53d 25 char info = 0x0;
felipeto1 0:7f560ecae53d 26
felipeto1 0:7f560ecae53d 27 CANMessage msg(5, &info, 8, CANData, CANStandard);
felipeto1 0:7f560ecae53d 28
felipeto1 0:7f560ecae53d 29 LED=1;
felipeto1 0:7f560ecae53d 30 wait(0.5);
felipeto1 0:7f560ecae53d 31
felipeto1 0:7f560ecae53d 32 LED=0;
felipeto1 0:7f560ecae53d 33 wait(0.5);
felipeto1 0:7f560ecae53d 34
felipeto1 0:7f560ecae53d 35 while(1){
felipeto1 0:7f560ecae53d 36
felipeto1 0:7f560ecae53d 37 if (vidro == 0){
felipeto1 0:7f560ecae53d 38 if (SW==1){
felipeto1 0:7f560ecae53d 39 info = 0x20;
felipeto1 0:7f560ecae53d 40 }
felipeto1 0:7f560ecae53d 41 if (SW==0){
felipeto1 0:7f560ecae53d 42 info = 0x21;
felipeto1 0:7f560ecae53d 43 }
felipeto1 0:7f560ecae53d 44 }
felipeto1 0:7f560ecae53d 45 if (vidro ==1){
felipeto1 0:7f560ecae53d 46 if (SW==1){
felipeto1 0:7f560ecae53d 47 info = 0x22;
felipeto1 0:7f560ecae53d 48 }
felipeto1 0:7f560ecae53d 49 if (SW==0){
felipeto1 0:7f560ecae53d 50 info = 0x23;
felipeto1 0:7f560ecae53d 51 }
felipeto1 0:7f560ecae53d 52 }
felipeto1 0:7f560ecae53d 53
felipeto1 0:7f560ecae53d 54 CANMessage msg(5, &info, 8, CANData, CANStandard);
felipeto1 0:7f560ecae53d 55
felipeto1 0:7f560ecae53d 56 if(can1.write(msg)){
felipeto1 0:7f560ecae53d 57 pc.printf("Enviada %x\n",msg.data[0]);
felipeto1 0:7f560ecae53d 58 }
felipeto1 0:7f560ecae53d 59 else{
felipeto1 0:7f560ecae53d 60 pc.printf("Nao Enviada\n");
felipeto1 0:7f560ecae53d 61 }
felipeto1 0:7f560ecae53d 62
felipeto1 0:7f560ecae53d 63 if(can1.read(msg)){
felipeto1 0:7f560ecae53d 64 if (msg.data[0]>=0x22){
felipeto1 0:7f560ecae53d 65 if (msg.data[0] == 0x22){
felipeto1 0:7f560ecae53d 66 EN = 0;
felipeto1 0:7f560ecae53d 67 }
felipeto1 0:7f560ecae53d 68 if (msg.data[0] == 0x23){
felipeto1 0:7f560ecae53d 69 EN = 1;
felipeto1 0:7f560ecae53d 70 }
felipeto1 0:7f560ecae53d 71 pc.printf("Sobe Vidro %x\n",msg.data[0]);
felipeto1 0:7f560ecae53d 72 IN1 = 1;
felipeto1 0:7f560ecae53d 73 IN2 = 0;
felipeto1 0:7f560ecae53d 74
felipeto1 0:7f560ecae53d 75 }
felipeto1 0:7f560ecae53d 76 if (msg.data[0]<0x22){
felipeto1 0:7f560ecae53d 77 if (msg.data[0] == 0x20){
felipeto1 0:7f560ecae53d 78 EN = 0;
felipeto1 0:7f560ecae53d 79 }
felipeto1 0:7f560ecae53d 80 if (msg.data[0] == 0x21){
felipeto1 0:7f560ecae53d 81 EN = 1;
felipeto1 0:7f560ecae53d 82 }
felipeto1 0:7f560ecae53d 83 pc.printf("Desce Vidro %x\n",msg.data[0]);
felipeto1 0:7f560ecae53d 84 IN1 = 0;
felipeto1 0:7f560ecae53d 85 IN2 = 1;
felipeto1 0:7f560ecae53d 86 }
felipeto1 0:7f560ecae53d 87 }
felipeto1 0:7f560ecae53d 88 saida_IN1 = IN1;
felipeto1 0:7f560ecae53d 89 saida_IN2 = IN2;
felipeto1 0:7f560ecae53d 90 if (EN==1){
felipeto1 0:7f560ecae53d 91 Enable = 1;
felipeto1 0:7f560ecae53d 92 }
felipeto1 0:7f560ecae53d 93 if (EN==0){
felipeto1 0:7f560ecae53d 94 Enable = 0;
felipeto1 0:7f560ecae53d 95 }
felipeto1 0:7f560ecae53d 96 wait(0.01);
felipeto1 0:7f560ecae53d 97 }
felipeto1 0:7f560ecae53d 98 }
felipeto1 0:7f560ecae53d 99