Ir ao conteúdo
  • Cadastre-se

Daniel Martins Pereira

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Tudo que Daniel Martins Pereira postou

  1. Olá, tudo bem? Alguem poderia me ajudar a converrter essalinguagem para c++?? Grato os passos para lavar a roupa são: 1) ENCHER a cuba- roupa+água+sabão, 2) BATER a Roupa- 10min ou 20min ou 30min, 3) DESCANSAR por 10 min. 4) SOLTAR a água, 5) LAVAR - repetir os passos 1,2 e 3 em um tempo 5min (sem sabão), 6) ENXAGUAR - centrifugar jogando água (bomba ligada), 7) AMACIANTE- encher de água + amaciante a cuba agitar um pouco, descançar por 5 minutos e esvaziar, CENTRIFUGAR - girar para tirar toda água FIM //CONTROLANDO A MAQUINA DE LAVAR GE //Paulo Roquetti //Jun/2015 /* PLACA CLPIC_VOICE PIC18F4550 CRISTAL-20MHZ RA0-I/O-DIGITAL-ANALOGICO RA1-I/O-DIGITAL-ANALOGICO RA2-I/O-DIGITAL-ANALOGICO RA3-I/O-DIGITAL-ANALOGICO RA4-IN-DIGITAL-CONTADOR DE EVENTOS - INC TIMER0 e IN-DIGITAL-OPTO RA5-IN-DIGITAL-OPTO RB0-OUT-RS-LCD RB1-OUT-EN-LCD RB2-OUT-DZ-7SEG RB3-OUT-UN-7SEG RB4-OUT-DADOS-LCD-7SEG RB5-OUT-DADOS-LCD-7SEG RB6-OUT-DADOS-LCD-7SEG RB7-OUT-DADOS-LCD-7SEG RC0-IN-DIGITAL-OPTO RC1-OUT-PWM2 RC2-OUT-PWM1 RC3-VUSB RC4-IN-D- USB RC5-IN-D+ USB RC6-IN-USART e IN-DIGITAL-OPTO RC7-IN-USART e IN-DIGITAL-OPTO RD0-OUT-DIGITAL-RELÉ RD1-OUT-DIGITAL-RELÉ RD2-OUT-DIGITAL-RELÉ RD3-OUT-DIGITAL-RELÉ RD4-OUT-DIGITAL-RELÉ RD5-OUT-DIGITAL-RELÉ RD6-OUT-DIGITAL-RELÉ RD7-OUT-DIGITAL-RELÉ RE0-IN-DIGITAL-OPTO RE1-IN-DIGITAL-OPTO RE2-OUT-DIGITAL-RELÉ */ #include #include #include "CLPIC_VOICE_biblioteca_lcd_2x16.h"//inclui biblioteca do lcd // Fosc = 20MHz // Tciclo = 4/Fosc = 0,2us #pragma config FOSC = HS //Para cristal de 20MHz #pragma config CPUDIV = OSC1_PLL2//sem PLL #pragma config USBDIV = 1//para USB sem PLL #pragma config PLLDIV = 5//Para cristal de 20MHz divide por 5, sempre tem que dar 4MHz #pragma config WDT = OFF//Desabilita o Watchdog Timer (WDT). #pragma config PWRT = OFF//Habilita o Power-up Timer (PWRT). #pragma config BOR = OFF//Brown-out Reset (BOR) habilitado somente no hardware. #pragma config BORV = 3//tensão do BOR é 2,0V. #pragma config PBADEN = OFF//RB0,1,2,3 e 4 configurado como I/O digital. #pragma config LVP = OFF//Desabilita o Low Voltage Program. #pragma config MCLRE = OFF//Desabilita o RESET ///////////////////////////////////// // ENTRADAS //////////////////////////////////// #define PARTIDA PORTAbits.RA5 #define PRESSOSTATO PORTEbits.RE0 #define TAMPA PORTEbits.RE1 /////////////////////////////////// // SAIDAS /////////////////////////////////// #define FASE PORTDbits.RD0 #define GIRO_ESQ PORTDbits.RD1 #define GIRO_DIR PORTDbits.RD2 #define BOMBA PORTDbits.RD3 #define AGUA PORTDbits.RD4 #define AMACIANTE PORTDbits.RD5 #define TRAVA PORTDbits.RD6 ///////////////////////////////////// //variaveis globais int cont=0,x,y,z,i,j,ch; char envia; //prototipo de funcoes void agitar(); void escreve_dado(); char recebe_caracter(); char envia_caracter(); void main() //funcao principal { //configura entradas e saida TRISA = 0b111111; TRISB = 0b00000000; TRISC = 0b11110001; TRISD = 0b00000000; TRISE = 0b111; //configura digitais ADCON1 = 0b00001111; //configura interrupcao INTCON = 0b11000000; //7-habilita chave geral //6-habilita perifericos PIE1bits.RCIE = 1; //configura UART TXSTA = 0b00000000; //7-não usado - assincrono //6-transmissão 8bits //5-desabilitada transmissão //4-modo assincrono //3-sync Break //2-baixa velocidade //1-Transmit Shift Register Status bit full //0-não usado RCSTA = 0b10010000; //7-porta serial habilitada //6-recepcao de 8bits //5-nao usado //4-recepcao habilitada //3-desabilitada deteccao de endereco //2-nao usado //1-nao usado //0-nao usado BAUDCON = 0b00000000; //7-AutoBAUD desabilitado EUSART //6-não usado //5-não usado //4-não usado //3-BAUD RATE em 8 bits //2-não usado //1-WAKE-UP (despertar) desabilitado, //0-não usado SPBRG = 0b10000001; // 129 em decimal para 9600bps //configurações iniciais PORTA = 0x00;//limpa as saídas PORTB = 0x00; PORTC = 0x00; PORTD = 0x00; PORTE = 0x00; lcd_inicia(0x28, 0x0E, 0x06);// inicializa o Display LCD com quatro linha de dados //////////////////////////////////////////////////////////////////////////////////// // INICIANDO A LAVAGEM //////////////////////////////////////////////////////////////////////////////////// lcd_posicao(1,1); imprime_string_lcd("CONTROLE "); lcd_posicao(2,1); imprime_string_lcd("MAQ DE LAVAR "); for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg lcd_posicao(1,1); imprime_string_lcd("COLOQUE "); lcd_posicao(2,1); imprime_string_lcd("ROUPA E SABAO"); for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg lcd_posicao(1,1); imprime_string_lcd("SELECIONE "); lcd_posicao(2,1); imprime_string_lcd("NIVEL DE AGUA"); for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg lcd_posicao(1,1); imprime_string_lcd("APERTE "); lcd_posicao(2,1); imprime_string_lcd("PARTIDA "); ///////////////////////////////////////////////////////////////////////////////////// // 1)INICIO LAVAGEM ///////////////////////////////////////////////////////////////////////////////////// while(PARTIDA == 1); FASE = 1; for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg AGUA = 1; lcd_posicao(1,1); imprime_string_lcd("ENCHENDO "); lcd_posicao(2,1); imprime_string_lcd("DE AGUA "); while(PRESSOSTATO == 0) { Delay10KTCYx(125); cont++; } AGUA = 0; for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg//////////////////////////////////////////////////////////////////////////////////// // 2) BATER A ROUPA //////////////////////////////////////////////////////////////////////////////////// TRAVA = 1; lcd_posicao(1,1); imprime_string_lcd("BATER A "); lcd_posicao(2,1); imprime_string_lcd("ROUPA "); GIRO_DIR = 0;//giro horario GIRO_ESQ = 0;//giro horario for(i=0; i<2 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 500ms for(j=0; j<150 10="" j="" minutos="" p=""> { agitar(); x=j; escreve_dado(); } GIRO_DIR = 0;//giro horario GIRO_ESQ = 0;//giro horario for(i=0; i<2 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 500ms//////////////////////////////////////////////////////////////////////////////////// // 3) DESCANCO DE 10 MINUTOS //////////////////////////////////////////////////////////////////////////////////// lcd_posicao(1,1); imprime_string_lcd("DESCANCO "); lcd_posicao(2,1); imprime_string_lcd("10 MINUTOS "); for(i=0; i<2400 i="" p=""> { Delay10KTCYx(125); //tempo de 10 minutos x=i; escreve_dado(); } //////////////////////////////////////////////////////////////////////////////////// // 4) SOLTAR A AGUA //////////////////////////////////////////////////////////////////////////////////// lcd_posicao(1,1); imprime_string_lcd("SOLTANDO "); lcd_posicao(2,1); imprime_string_lcd("A AGUA "); BOMBA = 1; // liga a bomba dágua para sair a agua cont=cont+40; for(i=0; i Delay10KTCYx(125); //tempo de enchimento + 10 segundos BOMBA = 0; // desliga a bomba dagua //////////////////////////////////////////////////////////////////////////////////// // 5) LAVAR //////////////////////////////////////////////////////////////////////////////////// // 5.1) enchendo de agua ////////////////////////// lcd_posicao(1,1); imprime_string_lcd("OPERACAO "); lcd_posicao(2,1); imprime_string_lcd("LAVAR "); AGUA = 1; while(PRESSOSTATO == 0); AGUA = 0; for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg // 5.2) bater roupa /////////////////// for(j=0; j<75 5="" j="" minutos="" p=""> { agitar(); x=j; escreve_dado(); } // 5.3) desligando motor e giro ////////////////////// GIRO_DIR = 0;//giro horario GIRO_ESQ = 0;//giro horario for(i=0; i<2 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 500ms // 5.4) soltar a agua //////////////////////////////////////////////////////////////////////////////////// BOMBA = 1; // liga a bomba dágua para sair a agua lcd_posicao(1,1); imprime_string_lcd("FINAL OPERACAO "); lcd_posicao(2,1); imprime_string_lcd("LAVAR "); cont=cont+40; for(i=0; i Delay10KTCYx(125); //tempo de enchimento + 10s /////////////////////////////////////////////////////////////////////////////////////// // 6) ENXAGUAR /////////////////////////////////////////////////////////////////////////////////////// lcd_posicao(1,1); imprime_string_lcd("OPERACAO "); lcd_posicao(2,1); imprime_string_lcd("ENXAGUAR "); GIRO_DIR = 1;//liga motor AGUA = 1; // liga agua for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg GIRO_DIR = 0;//desliga motor AGUA = 0; // desliga agua for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor AGUA = 1; // liga agua for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg GIRO_DIR = 0;//desliga motor AGUA = 0; // desliga agua for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor AGUA = 1; // liga agua for(i=0; i<40 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 10seg GIRO_DIR = 0;//desliga motor AGUA = 0; // desliga agua for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg; //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor AGUA = 1; // liga agua for(i=0; i<1200 i="" p=""> { Delay10KTCYx(125); //tempo de 5 min x=i; escreve_dado(); } GIRO_DIR = 0;//desliga motor AGUA = 0; // desliga agua lcd_posicao(1,1); imprime_string_lcd("FINALIZANDO "); lcd_posicao(2,1); imprime_string_lcd("ENXAGUAR "); for(i=0; i<60 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 15 segundos BOMBA = 0; //////////////////////////////////////////////////////////////////////////////////////// // 7) AMACIANTE //////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// // CENTRIFUGAR /////////////////////////////////////////////////////////////////////////////////////// lcd_posicao(1,1); imprime_string_lcd("OPERACAO "); lcd_posicao(2,1); imprime_string_lcd("CENTRIFUGAR "); for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg; BOMBA = 1; GIRO_DIR = 1;//liga motor for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg GIRO_DIR = 0;//desliga motor for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg GIRO_DIR = 0;//desliga motor for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor for(i=0; i<40 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 10seg GIRO_DIR = 0;//desliga motor for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg; //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor lcd_posicao(1,14); for(i=0; i<1200 i="" p=""> { Delay10KTCYx(125); //tempo de 5 min x=i; escreve_dado(); } GIRO_DIR = 0;//desliga motor lcd_posicao(1,1); imprime_string_lcd("FINALIZANDO "); lcd_posicao(2,1); imprime_string_lcd("CENTRIFUGAR "); for(i=0; i<60 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 15 segundos BOMBA = 0; for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(500); //tempo de 2,5seg; FASE = 0; TRAVA = 0; lcd_posicao(1,1); imprime_string_lcd("FIM DA LAVAGEM "); lcd_posicao(2,1); imprime_string_lcd("****************"); envia = 'F'; envia_caracter(); // FIM while(1); } ///////////////////////////////////////////////////////////////////////////////////////// void agitar() { GIRO_DIR = 1;//giro_direita for(i=0; i<4 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 1seg GIRO_DIR = 0;//desliga motor for(i=0; i<4 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 1seg GIRO_ESQ = 1;// giro_esquerda for(i=0; i<4 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 1seg GIRO_ESQ = 0; //desliga motor for(i=0; i<4 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 1seg } ////////////////////////////////////////////////////////////////////////////////////////// void escreve_dado() { int ch; ch = (x / 1000) % 10; // extract 0.1 digit lcd_posicao(1,10); lcd_escreve_dado(48+ch); // write ASCII digit at cursor point ch = (x / 100) % 10; // extract 0.1 digit lcd_posicao(1,11); lcd_escreve_dado(48+ch); // write ASCII digit at cursor point ch = (x / 10) % 10; // extract 0.01 digit lcd_posicao(1,12); lcd_escreve_dado(48+ch); // write ASCII digit at cursor point ch = x % 10; // extract 0.001 volts digit lcd_posicao(1,13); lcd_escreve_dado(48+ch); // write ASCII digit at cursor point } ////////////////////////////////////////////////////////////////////////////////////////// char recebe_caracter() { while(!PIR1bits.RCIF);// aguarda chegada de um novo byte PIR1bits.RCIF = 0; if(RCSTAbits.FERR) // se houve erro de transmissao { RCSTAbits.CREN = 0;//sim, desabilita recepcao return 'E'; //retorna 'E' de erro } else return RCREG; // nao, retorna dado } //////////////////////////////////////////////////////////////////////////////////////// char envia_caracter() { TXREG = envia; while(!TXSTAbits.TRMT);//aguarda transmissao terminar } //////////////////////////////////////////////////////////////////////////////////////// void acao() { switch(RCREG) { case 'A': lcd_limpa_tela(); lcd_posicao(1,1); imprime_string_lcd("ROQUETTI "); // lcd_escreve_dado(RCREG);//mostra o conteudo do registrador RCREG break; default: lcd_limpa_tela(); lcd_posicao(1,1); // lcd_escreve_dado(RCREG);//mostra o conteudo do registrador RCREG imprime_string_lcd("BLUETOOTH RC05 "); Delay10KTCYx(500); } }os passos para lavar a roupa são: 1) ENCHER a cuba- roupa+água+sabão, 2) BATER a Roupa- 10min ou 20min ou 30min, 3) DESCANSAR por 10 min. 4) SOLTAR a água, 5) LAVAR - repetir os passos 1,2 e 3 em um tempo 5min (sem sabão), 6) ENXAGUAR - centrifugar jogando água (bomba ligada), 7) AMACIANTE- encher de água + amaciante a cuba agitar um pouco, descançar por 5 minutos e esvaziar, CENTRIFUGAR - girar para tirar toda água FIM //CONTROLANDO A MAQUINA DE LAVAR GE ///* PLACA CLPIC_VOICE PIC18F4550 CRISTAL-20MHZ RA0-I/O-DIGITAL-ANALOGICO RA1-I/O-DIGITAL-ANALOGICO RA2-I/O-DIGITAL-ANALOGICO RA3-I/O-DIGITAL-ANALOGICO RA4-IN-DIGITAL-CONTADOR DE EVENTOS - INC TIMER0 e IN-DIGITAL-OPTO RA5-IN-DIGITAL-OPTO RB0-OUT-RS-LCD RB1-OUT-EN-LCD RB2-OUT-DZ-7SEG RB3-OUT-UN-7SEG RB4-OUT-DADOS-LCD-7SEG RB5-OUT-DADOS-LCD-7SEG RB6-OUT-DADOS-LCD-7SEG RB7-OUT-DADOS-LCD-7SEG RC0-IN-DIGITAL-OPTO RC1-OUT-PWM2 RC2-OUT-PWM1 RC3-VUSB RC4-IN-D- USB RC5-IN-D+ USB RC6-IN-USART e IN-DIGITAL-OPTO RC7-IN-USART e IN-DIGITAL-OPTO RD0-OUT-DIGITAL-RELÉ RD1-OUT-DIGITAL-RELÉ RD2-OUT-DIGITAL-RELÉ RD3-OUT-DIGITAL-RELÉ RD4-OUT-DIGITAL-RELÉ RD5-OUT-DIGITAL-RELÉ RD6-OUT-DIGITAL-RELÉ RD7-OUT-DIGITAL-RELÉ RE0-IN-DIGITAL-OPTO RE1-IN-DIGITAL-OPTO RE2-OUT-DIGITAL-RELÉ */ #include #include #include "CLPIC_VOICE_biblioteca_lcd_2x16.h"//inclui biblioteca do lcd // Fosc = 20MHz // Tciclo = 4/Fosc = 0,2us #pragma config FOSC = HS //Para cristal de 20MHz #pragma config CPUDIV = OSC1_PLL2//sem PLL #pragma config USBDIV = 1//para USB sem PLL #pragma config PLLDIV = 5//Para cristal de 20MHz divide por 5, sempre tem que dar 4MHz #pragma config WDT = OFF//Desabilita o Watchdog Timer (WDT). #pragma config PWRT = OFF//Habilita o Power-up Timer (PWRT). #pragma config BOR = OFF//Brown-out Reset (BOR) habilitado somente no hardware. #pragma config BORV = 3//tensão do BOR é 2,0V. #pragma config PBADEN = OFF//RB0,1,2,3 e 4 configurado como I/O digital. #pragma config LVP = OFF//Desabilita o Low Voltage Program. #pragma config MCLRE = OFF//Desabilita o RESET ///////////////////////////////////// // ENTRADAS //////////////////////////////////// #define PARTIDA PORTAbits.RA5 #define PRESSOSTATO PORTEbits.RE0 #define TAMPA PORTEbits.RE1 /////////////////////////////////// // SAIDAS /////////////////////////////////// #define FASE PORTDbits.RD0 #define GIRO_ESQ PORTDbits.RD1 #define GIRO_DIR PORTDbits.RD2 #define BOMBA PORTDbits.RD3 #define AGUA PORTDbits.RD4 #define AMACIANTE PORTDbits.RD5 #define TRAVA PORTDbits.RD6 ///////////////////////////////////// //variaveis globais int cont=0,x,y,z,i,j,ch; char envia; //prototipo de funcoes void agitar(); void escreve_dado(); char recebe_caracter(); char envia_caracter(); void main() //funcao principal { //configura entradas e saida TRISA = 0b111111; TRISB = 0b00000000; TRISC = 0b11110001; TRISD = 0b00000000; TRISE = 0b111; //configura digitais ADCON1 = 0b00001111; //configura interrupcao INTCON = 0b11000000; //7-habilita chave geral //6-habilita perifericos PIE1bits.RCIE = 1; //configura UART TXSTA = 0b00000000; //7-não usado - assincrono //6-transmissão 8bits //5-desabilitada transmissão //4-modo assincrono //3-sync Break //2-baixa velocidade //1-Transmit Shift Register Status bit full //0-não usado RCSTA = 0b10010000; //7-porta serial habilitada //6-recepcao de 8bits //5-nao usado //4-recepcao habilitada //3-desabilitada deteccao de endereco //2-nao usado //1-nao usado //0-nao usado BAUDCON = 0b00000000; //7-AutoBAUD desabilitado EUSART //6-não usado //5-não usado //4-não usado //3-BAUD RATE em 8 bits //2-não usado //1-WAKE-UP (despertar) desabilitado, //0-não usado SPBRG = 0b10000001; // 129 em decimal para 9600bps //configurações iniciais PORTA = 0x00;//limpa as saídas PORTB = 0x00; PORTC = 0x00; PORTD = 0x00; PORTE = 0x00; lcd_inicia(0x28, 0x0E, 0x06);// inicializa o Display LCD com quatro linha de dados //////////////////////////////////////////////////////////////////////////////////// // INICIANDO A LAVAGEM //////////////////////////////////////////////////////////////////////////////////// lcd_posicao(1,1); imprime_string_lcd("CONTROLE "); lcd_posicao(2,1); imprime_string_lcd("MAQ DE LAVAR "); for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg lcd_posicao(1,1); imprime_string_lcd("COLOQUE "); lcd_posicao(2,1); imprime_string_lcd("ROUPA E SABAO"); for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg lcd_posicao(1,1); imprime_string_lcd("SELECIONE "); lcd_posicao(2,1); imprime_string_lcd("NIVEL DE AGUA"); for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg lcd_posicao(1,1); imprime_string_lcd("APERTE "); lcd_posicao(2,1); imprime_string_lcd("PARTIDA "); ///////////////////////////////////////////////////////////////////////////////////// // 1)INICIO LAVAGEM ///////////////////////////////////////////////////////////////////////////////////// while(PARTIDA == 1); FASE = 1; for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg AGUA = 1; lcd_posicao(1,1); imprime_string_lcd("ENCHENDO "); lcd_posicao(2,1); imprime_string_lcd("DE AGUA "); while(PRESSOSTATO == 0) { Delay10KTCYx(125); cont++; } AGUA = 0; for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg//////////////////////////////////////////////////////////////////////////////////// // 2) BATER A ROUPA //////////////////////////////////////////////////////////////////////////////////// TRAVA = 1; lcd_posicao(1,1); imprime_string_lcd("BATER A "); lcd_posicao(2,1); imprime_string_lcd("ROUPA "); GIRO_DIR = 0;//giro horario GIRO_ESQ = 0;//giro horario for(i=0; i<2 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 500ms for(j=0; j<150 10="" j="" minutos="" p=""> { agitar(); x=j; escreve_dado(); } GIRO_DIR = 0;//giro horario GIRO_ESQ = 0;//giro horario for(i=0; i<2 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 500ms//////////////////////////////////////////////////////////////////////////////////// // 3) DESCANCO DE 10 MINUTOS //////////////////////////////////////////////////////////////////////////////////// lcd_posicao(1,1); imprime_string_lcd("DESCANCO "); lcd_posicao(2,1); imprime_string_lcd("10 MINUTOS "); for(i=0; i<2400 i="" p=""> { Delay10KTCYx(125); //tempo de 10 minutos x=i; escreve_dado(); } //////////////////////////////////////////////////////////////////////////////////// // 4) SOLTAR A AGUA //////////////////////////////////////////////////////////////////////////////////// lcd_posicao(1,1); imprime_string_lcd("SOLTANDO "); lcd_posicao(2,1); imprime_string_lcd("A AGUA "); BOMBA = 1; // liga a bomba dágua para sair a agua cont=cont+40; for(i=0; i Delay10KTCYx(125); //tempo de enchimento + 10 segundos BOMBA = 0; // desliga a bomba dagua //////////////////////////////////////////////////////////////////////////////////// // 5) LAVAR //////////////////////////////////////////////////////////////////////////////////// // 5.1) enchendo de agua ////////////////////////// lcd_posicao(1,1); imprime_string_lcd("OPERACAO "); lcd_posicao(2,1); imprime_string_lcd("LAVAR "); AGUA = 1; while(PRESSOSTATO == 0); AGUA = 0; for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg // 5.2) bater roupa /////////////////// for(j=0; j<75 5="" j="" minutos="" p=""> { agitar(); x=j; escreve_dado(); } // 5.3) desligando motor e giro ////////////////////// GIRO_DIR = 0;//giro horario GIRO_ESQ = 0;//giro horario for(i=0; i<2 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 500ms // 5.4) soltar a agua //////////////////////////////////////////////////////////////////////////////////// BOMBA = 1; // liga a bomba dágua para sair a agua lcd_posicao(1,1); imprime_string_lcd("FINAL OPERACAO "); lcd_posicao(2,1); imprime_string_lcd("LAVAR "); cont=cont+40; for(i=0; i Delay10KTCYx(125); //tempo de enchimento + 10s /////////////////////////////////////////////////////////////////////////////////////// // 6) ENXAGUAR /////////////////////////////////////////////////////////////////////////////////////// lcd_posicao(1,1); imprime_string_lcd("OPERACAO "); lcd_posicao(2,1); imprime_string_lcd("ENXAGUAR "); GIRO_DIR = 1;//liga motor AGUA = 1; // liga agua for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg GIRO_DIR = 0;//desliga motor AGUA = 0; // desliga agua for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor AGUA = 1; // liga agua for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg GIRO_DIR = 0;//desliga motor AGUA = 0; // desliga agua for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor AGUA = 1; // liga agua for(i=0; i<40 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 10seg GIRO_DIR = 0;//desliga motor AGUA = 0; // desliga agua for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg; //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor AGUA = 1; // liga agua for(i=0; i<1200 i="" p=""> { Delay10KTCYx(125); //tempo de 5 min x=i; escreve_dado(); } GIRO_DIR = 0;//desliga motor AGUA = 0; // desliga agua lcd_posicao(1,1); imprime_string_lcd("FINALIZANDO "); lcd_posicao(2,1); imprime_string_lcd("ENXAGUAR "); for(i=0; i<60 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 15 segundos BOMBA = 0; //////////////////////////////////////////////////////////////////////////////////////// // 7) AMACIANTE //////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// // CENTRIFUGAR /////////////////////////////////////////////////////////////////////////////////////// lcd_posicao(1,1); imprime_string_lcd("OPERACAO "); lcd_posicao(2,1); imprime_string_lcd("CENTRIFUGAR "); for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg; BOMBA = 1; GIRO_DIR = 1;//liga motor for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg GIRO_DIR = 0;//desliga motor for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg GIRO_DIR = 0;//desliga motor for(i=0; i<20 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 5seg //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor for(i=0; i<40 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 10seg GIRO_DIR = 0;//desliga motor for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 2,5seg; //////////////////////////////////////////////////////// GIRO_DIR = 1;//liga motor lcd_posicao(1,14); for(i=0; i<1200 i="" p=""> { Delay10KTCYx(125); //tempo de 5 min x=i; escreve_dado(); } GIRO_DIR = 0;//desliga motor lcd_posicao(1,1); imprime_string_lcd("FINALIZANDO "); lcd_posicao(2,1); imprime_string_lcd("CENTRIFUGAR "); for(i=0; i<60 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 15 segundos BOMBA = 0; for(i=0; i<10 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(500); //tempo de 2,5seg; FASE = 0; TRAVA = 0; lcd_posicao(1,1); imprime_string_lcd("FIM DA LAVAGEM "); lcd_posicao(2,1); imprime_string_lcd("****************"); envia = 'F'; envia_caracter(); // FIM while(1); } ///////////////////////////////////////////////////////////////////////////////////////// void agitar() { GIRO_DIR = 1;//giro_direita for(i=0; i<4 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 1seg GIRO_DIR = 0;//desliga motor for(i=0; i<4 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 1seg GIRO_ESQ = 1;// giro_esquerda for(i=0; i<4 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 1seg GIRO_ESQ = 0; //desliga motor for(i=0; i<4 class="Apple-tab-span" i="" span="" style="white-space: pre;"> Delay10KTCYx(125); //tempo de 1seg } ////////////////////////////////////////////////////////////////////////////////////////// void escreve_dado() { int ch; ch = (x / 1000) % 10; // extract 0.1 digit lcd_posicao(1,10); lcd_escreve_dado(48+ch); // write ASCII digit at cursor point ch = (x / 100) % 10; // extract 0.1 digit lcd_posicao(1,11); lcd_escreve_dado(48+ch); // write ASCII digit at cursor point ch = (x / 10) % 10; // extract 0.01 digit lcd_posicao(1,12); lcd_escreve_dado(48+ch); // write ASCII digit at cursor point ch = x % 10; // extract 0.001 volts digit lcd_posicao(1,13); lcd_escreve_dado(48+ch); // write ASCII digit at cursor point } ////////////////////////////////////////////////////////////////////////////////////////// char recebe_caracter() { while(!PIR1bits.RCIF);// aguarda chegada de um novo byte PIR1bits.RCIF = 0; if(RCSTAbits.FERR) // se houve erro de transmissao { RCSTAbits.CREN = 0;//sim, desabilita recepcao return 'E'; //retorna 'E' de erro } else return RCREG; // nao, retorna dado } //////////////////////////////////////////////////////////////////////////////////////// char envia_caracter() { TXREG = envia; while(!TXSTAbits.TRMT);//aguarda transmissao terminar } //////////////////////////////////////////////////////////////////////////////////////// void acao() { switch(RCREG) { case 'A': lcd_limpa_tela(); lcd_posicao(1,1); imprime_string_lcd("ROQUETTI "); // lcd_escreve_dado(RCREG);//mostra o conteudo do registrador RCREG break; default: lcd_limpa_tela(); lcd_posicao(1,1); // lcd_escreve_dado(RCREG);//mostra o conteudo do registrador RCREG imprime_string_lcd("BLUETOOTH RC05 "); Delay10KTCYx(500); }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...