-
Posts
4 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Isabella Lima
-
-
@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#)
-
Desculpa kkkkkkkkk
Linguagem C9 horas atrás, aphawk disse:Bem-vinda ao Fórum.
Não basta apenas saber que o seu kit usa o Pic 16F877A...
Sobre o McMaster... tem de saber qual o protocolo de comunicação, com o formato dos dados que são enviados, se são dois bytes apenas ou mais bytes, sinalizando Início ou Final de Frame, se tem checksum ....
E qual a linguagem ?
Bola de cristal está em falta no mercado kkkkk !
Só com essas informações alguém pode te ajudar, ok ? (Eu não entendo mais nada de Pic, mas tem outros aqui que ainda usam ! )
Paulo
adicionado 1 minuto depois29 minutos atrás, ViniciusKruz disse:Quais linguagens serão usadas tanto no programa quanto no PIC?
Linguagem C
-
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
programação do potenciômetro no kit mcmaster
em Microcontroladores
Postado
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;
}