Fórum

Palavra-chave
Destaque/Sem destaque
Resolvida/Não Resolvida
Aberta/Encerrada
0 votos
2k visualizações

Ola.

Estou a fazer um projecto com arduino uno e jsp, para controlar luzes, portao e tanque de agua. O problema e que nao sei bem como vou sinalizar os estados (portao aberto ou fechado, luz acesa ou apagada e tanque cheio, vazio ou metade). Algeum sabe de alguma maneira como colocar isso n jsp

  • Celio Ismael perguntada 4 anos atrás
  • última atividade 4 anos atrás
0 votos
2k visualizações

Olá Pessoa,

Sou novo no mundo do arduino e estou com um grande problema para criar um sistema de leitura de codigo de barras.

Tenho que realizar a leitura de umas etiquetas e transmitir para o meu sistema, porém nao sei nem por onde começar.

Já descobri como fazer para o leitor funcionar e exibir em um display, porém nao sei exatamente como fazer para transmitir o codigo de barras lido para o meu sistema.

Pode ser até em um arquivo txt ou algo do tipo.

Poderiam me ajudar a dar uma luz?

  • Felipe Mazzoni perguntada 3 anos atrás
  • última atividade 3 anos atrás
0 votos
1k visualizações

Saudações,
Estou fazendo um projeto com o sensor de temperatura e umidade DHT22 junto com o PIC 16F628A, porém percebi que o problema está na função que lê os bits do sensor. Alguém poderia me indicar onde está o problema? O meu LCD não aparece nada, somente aparece se eu comentar as linhas que recebem readData(). Esse é o código do PIC:

/*********************** FUNÇOES DO SENSOR DHT22 ****************************************************/
//Envia sinal de start para o sensor
void startSignal() {
set_tris_a(0b00000000); //Configura RA1 como output
output_low(DATA); //Pino DATA envia 0 para o sensor
delay_ms(25);
output_high(DATA); //Pino DATA envia 1 para o sensor
delay_us(30);
set_tris_a(0b00000010); //Configura RA1 como input
}

//Checa resposta do sensor
unsigned short checkResponse() {
delay_us(40);
if(!input(DATA)) delay_us(80);
if(input(DATA)) {
delay_us(50);
return 1;
}
return 0;
}

//Função para ler os dados do sensor DHT22
unsigned short readData() {
unsigned short j=0, contaTempo=0, dataByte=0;

if(timeOut) break;

for(j = 0; j <= 7; j++) {
    contaTempo = 0;
    while(!input(DATA)){ // Espera até que a porta DATA vá para High
        delay_us(1);
        contaTempo++;
        if(contaTempo > 100) {
            timeOut = 1; 
            break;
        }
    }

    delay_us(40);

    if(!input(DATA)) { //Se continuar em Low apos 40us, bit = 0

        dataByte &= ~(1 << (7 - j)); //Zera bit (7-j)
    }
    else { //Se estiver em High apos 40us, bit = 1
        dataByte |= (1 << (7 - j)); //Seta bit (7-j)

        while(input(DATA)){ //Espera até que a porta DATA vá para Low
            delay_us(1);
            contaTempo++;
            if(contaTempo > 100) {
                timeOut = 1; 
                break;
            }
        }
    }
}
return dataByte;

}
/***************************************************************************/

//PROGRAMA PRINCIPAL
void main(void) {
set_tris_a(0b00000000);
set_tris_b(0b00000000);
output_a(0);
output_b(0);
setup_ccp1(CCP_OFF);
lcd_init(); //Inicializa LCD
printf(lcd_putc, “\f”); //Limpa LCD

while(TRUE) {

    delay_ms(2000);
    timeOut = 0;
    //inicia leitura do sensor
    startSignal();
    if(checkResponse()) {

        umidade_byte1 = readData();     //primeiro byte da umidade: bit 15 ~ bit 8
        umidade_byte2 = readData();     //segundo byte da umidade bit: 7 ~ bit 0
        temperatura_byte1 = readData(); //primeiro byte da temperatura: bit 15 ~ bit 8
        temperatura_byte2 = readData(); //segundo byte da temperatura: bit 7 ~ bit 0
        paridade_byte = readData();     //byte da paridade bit: 7 ~ bit 0

        if(timeOut){                           // If reading takes long time
            printf(lcd_putc,"\f");                       // LCD clear
            lcd_gotoxy(2, 6);                     // Go to column 5 row 1
            printf(lcd_putc, "Time out!");
        }
        else {
            if(paridade_byte == ((umidade_byte1 + umidade_byte2 + temperatura_byte1 + temperatura_byte2) & 0xFF)) {
                umidade_2byte = umidade_byte1;
                umidade_2byte = (umidade_2byte << 8) | umidade_byte2;
                temperatura_2byte = temperatura_byte1;
                temperatura_2byte = (temperatura_2byte << 8) | temperatura_byte2;

                if(temperatura_2byte > 0x8000) { //Se temperatura for maior que 1000 0000 (binario)
                    temperatura_2byte &= 0x7FFF; //Temperatura recebe 14bits, pois o bit 15 representa sinal
                    temperatura =  temperatura_2byte;
                    temperatura = ( temperatura / 10) * -1; //Corrige temperatura
                    sinal = '-';
                }
                else {
                    sinal = ' ';
                    temperatura =  temperatura_2byte;
                    temperatura = ( temperatura / 10) * -1; //Corrige temperatura
                }
                umidade = umidade_2byte;
                umidade = umidade / 10; //Corrige umidade

                lcd_gotoxy(1,5);                                                   // Define o ponto de inicio da frase L1C5                                             
                printf(lcd_putc,"Temp: %02.1f \xDFC", temperatura);                // Escreve no LCD Temperatura em Celsius     [printf(lcd_putc, "%f " "\xdf" "C", temperatura)];
                lcd_gotoxy(2,5);                                                   // Define o ponto de inicio da frase L2C5
                printf(lcd_putc,"Temp: %02.1f \xDFF", ((temperatura * 1.8) + 32)); // Escreve no LCD Temperatura em Fahrenheit
                /*lcd_gotoxy(3,5);                                                   // Define o ponto de inicio da frase L3C5
                printf(lcd_putc,"Temp: %02.1f \xDFK", temperatura + 273.15);       // Escreve no LCD Temperatura em Kelvin*/
                lcd_gotoxy(4,5);                                                   // Define o ponto de inicio da frase L4C5
                printf(lcd_putc,"Umid: %02.1f %c", umidade, 0x25);                 // Escreve no LCD Umidade em %
            }
            else {
                printf(lcd_putc, "\f");              // Limpa LCD
                lcd_gotoxy(2, 3);                    // Define o ponto de inicio da frase L2C3
                printf(lcd_putc, "Checksum Error!"); // Escreve no LCD (Erro de paridade dos dados)
            }
        }
    }
    else {
        lcd_gotoxy(2, 3);                     // Define o ponto de inicio da frase L2C3
        printf(lcd_putc, "  No response   "); // Escreve no LCD
        lcd_gotoxy(3, 3);                     // Define o ponto de inicio da frase L2C3
        printf(lcd_putc, "from the sensor");  // Escreve no LCD
    }
}

}

0 votos
1k visualizações

Olá, boa tarde.
Sou graduando em Engenharia de Produção e gostaria de tirar uma duvida com vocês se possível.
Estou pesquisando sobre exemplos ( aplicações) de ARDUÍNO.

Com GRPS ( SHIELD)
Com WIFI ( SHIELD )
Qual o melhor ? As características de cada ? Vantagens e Desvantagens e etc.
Agradeceria muito se me esclarecesse estas duvidas, pois ainda sou lego no assunto.
Obrigado e agradeço desde já.

0 votos
0 respostas
259 visualizações

Boa noite a todos, sou iniciante em arduino e estou interessado na automatização de um sistema medidor de efeito hall e gostaria de saber como posso medir no mesmo arduino tensões que vão de 0-100mV com variações de 1mV e ao mesmo tempo medir tensões de 0-8V com variações de 0,02V?

0 votos
0 respostas
244 visualizações

Olá,
Preciso usar um arduino UNO para ler uma variável analógica e uma digital 15600 vezes por segundo. Será que ele tem esta capacidade?
Obrigado pela atenção!

2 votos
8k visualizações

Olá Pessoal,

Muito se discute sobre o uso do Arduino no mundo dos embarcados. Projetistas antigos defendem o aprendizado do microcontrolador em mais baixo nível e que a plataforma arduino abstrai muito. Por outro lado a curva de aprendizagem (conseguir fazer algo) é muito mais rápida com Arduino em curso técnicos, por exemplo. Outro ponto interessante da plataforma é a constante evolução e aprimoramento do hardware e bibliotecas

Gostaria de saber de vocês, que trabalham diariamente com sistemas embarcados, como enxergam essa plataforma no mercado e o que acham dela como plataforma de aprendizagem(dar os primeiros passos no mundo dos embarcados)?

  • Fábio Souza perguntada 5 anos atrás
  • última atividade 5 anos atrás
0 votos
954 visualizações

Estou trabalhando com a plataforma SoC VF61 Toradex rodando Linux. Durante o teste de “stress” da comunicação I2C, percebemos que o sinal SDA ficou travado no nível ZERO impedindo a comunicação, pois nesta situação nenhum sinal de clock (SCL) é enviado. Li sobre o método de enviar 09 sinais de clock para restabelecimento da comunicação. No meu caso, detectei duas questões:
1) quando o SDA fica travado em zero, o próprio driver detecta esta situação e aborta qualquer solicitação de comunicação impedindo o envio dos sinais de clock;
2) o pino configurado como sinal de clock não pode ser utilizado como GPIO, pois o Linux impede esta situação. Neste caso, existe algum método de alterar a configuração do pino a nível da aplicação?

Gostaria de saber se alguém já passou por esta situação e como resolveu.

0 votos
2k visualizações

Olá Galera,

Sou novo aqui no forum embarcados.

Eu estou escrevendo este post para fazer umas perguntas. Antes de mais quero dizer que eu sou novo nestas coisas de sistemas embarcados/microcontroladores.

Eu tenho a board de desenvolvimento PICDEM FS USB e já a experimentei, o PIC vem com o bootloader gravado, estive a ver a temperatura, a resistência variável, etc.

Agora é assim, eu queria utilizar esta board para fazer projectos pessoais mas com um pormenor, queria gravar directamente o PIC através do USB e assim não usar o Pickit 2 (que nem sequer ainda testei pois comprei a muito tempo e nunca mais tive tempo para me didicar a microcontroladores – excepto agora). É mais cómodo.

As duvidas que tenho são as seguintes:

Para eu poder fazer os meus projectos nesta board e gravar os ficheirinhos .hex do meu projecto através do USB com o software que vem com a board (dá para gravar através desse mesmo software) eu tenho sempre que colocar a parte do código de USB que é fornecida pela Microchip no meu código de modo a que cada vez que eu grave para o microcontrolador o meu projecto ele não perca o bootloader?

Alguém já conseguiu fazer alguma vez uma coisa dessas?

Cumprimentos.

  • Carlos Carlos perguntada 4 anos atrás
  • última atividade 4 anos atrás
0 votos
0 respostas
1k visualizações

Olá,
Estou desenvolvendo um projeto mas embarrei em algumas especificações. Meu projeto consiste utilizar câmeras IP e um ODROID XU4 e criar um CFTV. Eu preciso saber quanto é a banda maxima do Odroid para saber quantas câmeras eu consigo ligar nele. OBS: eu sei que a câmera ip que eu vou estar utilizando consome cerca de 6MB.

  • Carlinhos2270 perguntada 2 anos atrás
  • última atividade 2 anos atrás
Mostrando 11 - 20 de 372 resultados