Ir ao conteúdo
  • Cadastre-se

Carlos Filho_448131

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

0
  1. Deu em nada a troca :/. Ta do mesmo jeito agora o bicho pegou. O erro era que eu nao tinha configurado as portas como analogicas. Ficou assim: #include <16F877.h>#DEVICE ADC = 10#FUSES NOWDT #FUSES HS #FUSES PUT #FUSES NOBROWNOUT #FUSES NOLVP #use delay(clock=8000000)#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=PORT1)// PINOS LCD#define LCD_DB4 PIN_B0#define LCD_DB5 PIN_B1#define LCD_DB6 PIN_B2#define LCD_DB7 PIN_B3#define LCD_E PIN_C0#define LCD_RS PIN_C1#include <flex_lcd.c>#include <analo.h>float reading;float temperature0,temperature1,temperature2 ;void main(){ setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(AN0_AN1_AN2_AN3_AN4); setup_adc(ADC_CLOCK_INTERNAL); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); lcd_init(); // INICIAR LCD lcd_putc("\f"); // LIMPAR LCD printf ("TempPictronics\r"); delay_ms(500); while(true) { set_adc_channel(0); // CANAL SELECIONADO reading = read_adc(); delay_us(20); temperature0 = (((reading*0.0048828125f))*100); // Transformação dos dados para Celsius (Calibração!!) set_adc_channel(1); // CANAL SELECIONADO reading = read_adc(); delay_us(20); temperature1 = (((reading*0.0048828125f))*100); // Transformação dos dados para Celsius (Calibração!!) set_adc_channel(2); // CANAL SELECIONADO reading = read_adc(); delay_us(20); temperature2 = (((reading*0.0048828125f))*100); // Transformação dos dados para Celsius (Calibração!!) while(true){ lcd_gotoxy (1, 1); printf(lcd_putc,"T1:%2.1f%cC,T2:%2.1f%cC",temperature0,0xdf,temperature1, 0b11011111); lcd_gotoxy (1, 2); // Posiciona cursor no LCD printf(lcd_putc,"T3:%2.1f%cC",temperature2, 0b11011111); printf("%2.1f\r",temperature0); } } Mas agora tá dando erro Error 23 no arquivo 16f877.h "Can not set this option this far into the code" e é em #device PIC16F877 que aparece. Dando o mesmo erro no arquivo analo.h
  2. olha eu! O que ta errado nessa gota?? To tentando fazer com que os termopares apareçam no lcd a manhã toda e nada set_adc_channel(0); // CANAL SELECIONADO reading = read_adc(); delay_ms(250); temperature0 = (((reading*0.0048828125f))*100); // Transformação dos dados para Celsius (Calibração!!) set_adc_channel(1); // CANAL SELECIONADO reading = read_adc(); delay_ms(250); temperature1 = (((reading*0.0048828125f))*100); // Transformação dos dados para Celsius (Calibração!!) set_adc_channel(2); // CANAL SELECIONADO reading = read_adc(); delay_ms(250); temperature2 = (((reading*0.0048828125f))*100); // Transformação dos dados para Celsius (Calibração!!) while(1){ lcd_gotoxy (1, 1); printf(lcd_putc,"\n%3.2f%C,%3.2f",temperature0,0xdf,temperature1); lcd_gotoxy (1, 2); // Posiciona cursor no LCD printf(lcd_putc,"\n%3.2f%C",temperature2); e ainda ta dando erro de ADC nas entradas Consegui ^^ while(true){ lcd_gotoxy (1, 1); printf(lcd_putc,"1:%3.2f%C,2:%3.2f%c",temperature0,0xdf,temperature1, 0b11011111); lcd_gotoxy (1, 2); // Posiciona cursor no LCD printf(lcd_putc,"3:%2.1f%cC",temperature2, 0b11011111); } Só que ainda ta dando erro. O unico PIC disponivel é o PIC16F877. To lendo o datasheet pra ver se ajuda
  3. kkkkkkk de fato. Isso é pra fazer um equipamento pra eu poder usar no meu tcc. O que vou usar só são os dados que vou obter. Só vou fazer porque pra pegar um emprestado nessa gota de universidade é uma burocracia da gota na qual eu nao tenho tempo (mas tambem desejo aprender e entender se possivel) :/ . O que deu trabalho foi no ISIS pra ver se daria certo, ai fui testando um por um. estou aqui tentando aprender o WRITE_EEPROM e o READ_EEPROM mas não entendo os endereços. Pensei que endereço era PIN_A1
  4. Olha eu!! Seguinte consegui fazer um programa com base em alguns que vi na net no CCS C. Daí ficou assim: #include <18F2550.h>#DEVICE ADC = 10#FUSES NOWDT #FUSES NOUSBDIV #FUSES HS #FUSES PUT #FUSES NOBROWNOUT #FUSES MCLR#FUSES NOLVP #use delay(clock=8000000)#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=PORT1)// PINOS LCD#define LCD_DB4 PIN_B0#define LCD_DB5 PIN_B1#define LCD_DB6 PIN_B2#define LCD_DB7 PIN_B3#define LCD_E PIN_C0#define LCD_RS PIN_C1#include <flex_lcd.c>#include <math.h>float reading;float temperature, fahrenheitTemp;void main(){ setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(AN0); lcd_init(); // INICIAR LCD lcd_putc("\f"); // LIMPAR LCD delay_ms(500); while(true) { set_adc_channel(1); // CANAL SELECIONADO reading = read_adc(); delay_ms(1000); temperature = (((reading*0.0048828125f))*100); // Transformação dos dados para Celsius (Calibração!!) fahrenheitTemp = (temperature*1.8) + 32; // Para Fahrenheit printf(lcd_putc,"\n%3.2f%CC, %3.2fF",temperature,0xdf, fahrenheitTemp); }} Nesse ai to pegando os dados do segundo termopar no Pino A1 Ai (não sei se tem, mas nao achei na net) queria saber se tem algum jeito de gravar os dados dos 3 termopares e salvar (pelo que eu vi acho que pode salvar os dados no proprio pic e depois retirar) para depois fazer grafico dos 3. To mais acostumado com Matlab e lá tem Se liga como ficou a interface www.imageshack.com/i/nm82hcj
  5. Valeu pelas dicas parceiro! É pra meu tcc. É que meu orientador não é muito presente ¬¬ .Vou começar agora ^^ Qualquer apareço por aqui pra perturbar de novo kkkkk vlwww
  6. Galera, tudo beleza??? Sou novo na parte de programação, ai tava precisando de ajuda. Faço engenharia mecânica e estou fazendo um projeto para leitura de 3 termopares que ficarão em cantos distintos de um motor afim de medir a variação de temperatura em função da eficiência do motor. Eu pretendo usar o Pic18f1320 que contem 18 pinos. Pretendo usar 14 nos quais sao 3 para os termopares, queria colocar um display em um dos termopares que sao 7 pinos, o oscilador de cristal 2, o AD595 que no caso será um para cada termopar totalizando 3 pinos e 2 da alimentação que da no total 14 pinos. Estou apanhando no MPLAB pra fazer o programa e levando uns tapas do ISIS do Proteus quando tento fazer o circuito. Nao sei quase nada de programação(só sei mexer no matlab mas nao ajuda muito em C) Agradeço muito ^^ kkkkk esqueci de dizer o que eu queria Se estou no caminho certo mesmo. E se é muito trabalho para um iniciante pois meu orientador ainda quer q eu envie os dados via radio do pic diretamente pra o computador. valeu

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