Ir ao conteúdo
  • Cadastre-se

Isabella Lima

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

posts postados por Isabella Lima

  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. Desculpa kkkkkkkkk
    Linguagem C

     

    9 horas atrás, aphawk disse:

    @Isabella Lima ,

     

     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 depois
    29 minutos atrás, ViniciusKruz disse:

    Quais linguagens serão usadas tanto no programa quanto no PIC?

     

    Linguagem C

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!