Ir ao conteúdo
  • Cadastre-se

Isabella Lima

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. Eu e uns colegas chegamos próximos do que queremos, fizemos a programação em C++ achamos mais eficaz, ainda falta alguns ajustes, pois na hora que compila o oscilador ainda não está 100% certo, mas segue o código até o momento: #include <iostream> #include <windows.h> #include <conio.h> #include <cctype> using namespace std; int main(void) { // Variáveis char opc; int valor; char szBuff[4]; char szBuff3[25]; char szBuff2[6];//='Caracter '; strcpy(szBuff2, "Chave "); strcpy(szBuff3, " press...#### ECOM 7 #####"); HANDLE hSerial; DCB dcbSerialParams = {0}; DWORD dwBytesRead = 0; DWORD dwBytesWrite = 0; cout << endl; cout << "___ Interface Serial ___" << endl; cout << endl; // Abre a porta serial COM1 hSerial = CreateFile("COM1",GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); if(hSerial==INVALID_HANDLE_VALUE) { if(GetLastError()==ERROR_FILE_NOT_FOUND) { cout << "Erro! Porta não encontrada." << endl; } cout << "Erro! A porta não pode ser aberta." << endl; } // Configura os parâmetros da porta dcbSerialParams.DCBlength=sizeof(dcbSerialParams); if (!GetCommState(hSerial, &dcbSerialParams)) { cout << "Erro! Parâmentros da porta não encontrados." << endl; } dcbSerialParams.BaudRate=CBR_9600; dcbSerialParams.ByteSize=8; dcbSerialParams.StopBits=ONESTOPBIT; dcbSerialParams.Parity=NOPARITY; if(!SetCommState(hSerial, &dcbSerialParams)) { cout << "Erro! Os parâmentros da porta não puderam ser setados." << endl; } opc = '0'; while (opc != '3') { cout << endl; cout << "2) Ler e escrever na porta COM1" << endl; cout << "3) Sair" << endl; cout << "Opcao = "; cin >> opc; if (opc == '2') { cout << "Tecle algo para encerrar a leitura..." << endl; while (!kbhit()) { strcpy(szBuff,""); if(!ReadFile(hSerial, szBuff, 4, &dwBytesRead, NULL)) { cout << "Erro! Leitura da porta." << endl; } ///cout << endl; cout << "Caracter = " << szBuff<< endl; char var1[4]; int aux; cout<< "szBuff = " << szBuff << endl; for(int i = 0 ; i < 5 ; i++) if(!isdigit(szBuff)) szBuff='0'; valor = atoi(szBuff); if(szBuff!=0) { if(valor < 2000) { WriteFile(hSerial, "1", 1, &dwBytesRead, NULL); WriteFile(hSerial, "4", 1, &dwBytesRead, NULL); } if(valor >=3000) { WriteFile(hSerial, "2", 1, &dwBytesRead, NULL); WriteFile(hSerial, "3", 1, &dwBytesRead, NULL); } } // szBuff = strcpy("0000"); } } } // Fecha a porta serial COM1 CloseHandle(hSerial); system("pause"); return 0; }
  2. @ViniciusKruz Linguagem C nem tanto, o problema mesmo é a programação utilizando o microcontrolador... O compilador que utilizo é o CODBLOCK. Esse é o Kit McMaster que utilizo na faculdade (http://www.mosaico.com.br/?canal=5&pg=showProduto&path=produtos&id=16#)
  3. Desculpa kkkkkkkkk Linguagem C adicionado 1 minuto depois Linguagem C
  4. Boa noite pessoal! Estou com muitas dúvidas nessa prática de laboratório e gostaria que alguém me orientasse, esse kit tem o microcontrolador PIC16F877A. - > Elabore um programa que comunique com o módulo McMaster através da porta serial. O programa deve ler o valor enviado pelo módulo (tensão ajustada no potenciômetro) e se o valor for < 2000, o programa deve enviar os caracteres “1” (liga a lâmpada) e “4” (desliga o ventilador). Caso o valor for >= 3000, o programa deve enviar os caracteres “2” (desliga a lâmpada) e “3” (liga o ventilador). Desde já agradeço.

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...