Ir ao conteúdo
  • Cadastre-se

Nao Sei

Membro Pleno
  • Posts

    128
  • Cadastrado em

  • Última visita

Tudo que Nao Sei postou

  1. Depende do compilador,mais em duas partes comentei,que vai ser indiferente independemente do compilador. #define s1 RB1_bit #define s2 RB2_bit #define led RB3_bit int contador = 0; void main(){ CMCON = 7; TRISB = 0x06; PORTB = 0x00; while (1) { if (s1 == 1 && s2 == 0) { contador++; delay_ms(300); led = 1; }else if (s2 == 1 && s1 == 0) {//fica mais logico usar um if else, //pois se um acontecer em um,no outro não ocorre, // e provavelmente o codigo ficara mais otimizado, //claro do outro modo também funcionaria para este caso. contador--; } if (contador == 0) {// comparar dois sinais de iguais delay_ms(300); led = 0; } } }
  2. Geralmente fica neste capitulo do datasheet "ELECTRICAL CHARACTERISTICS",para o pic18f2520.Se for um projeto comercial é bom seguir isto,mais caso ao contrario 3v funciona mesmo para schmitt Trigger nos pic que testei.
  3. Tem uma opção para adicionar codigo,não coloca em arquivo txt,ninguém quer ficar baixado arquivos.
  4. @DouglasWDR Qual o problema?Qual compilador?e indenta este código seu.
  5. Para representar numero de 0-65535,deve usar int16,e para imprimir %lu,assim imprimira um numero inteiro sem sinal de 16bits
  6. Neste tópico tem exemplos: http://forum.clubedohardware.com.br/forums/topic/802513-projeto-de-um-frequencimetro-digital-com-lcd-e-pic-funcionando/
  7. O link que o @aphawk colocou,tem um exemplo para gravar float https://www.arduino.cc/en/Reference/EEPROMPut -----//----- float f = 123.456f; //Variable to store in EEPROM. int eeAddress = 0; //Location we want the data to be put. //One simple call, with the address first and the object second. EEPROM.put(eeAddress, f); -----//---- e para ler ter um exemplo https://www.arduino.cc/en/Reference/EEPROMGet ----//---- EEPROM.get( eeAddress, f ); ----//---- Eu demorei menos de um minuto para achar isto,digitei no google apenas "float arduino eeprom",a maioria das vezes não sabemos das coisas,mas temos que aprender pesquisar. Se você quer programa em c,deve saber struct,union,isso é o básico. Talvez ta na hora de você pegar um livro de C genérico,e estudar um pouco.O jeito que @Isadora Ferraz disse,é o mais eficiente mesmo,mais obviamente você usar a função pronta do Arduíno não terá problema para maioria dos casos,pois se você um projeto que tivesse alguns requisitos critico,você não estaria fazendo no Arduíno..
  8. Provavelmente,pois reduz custo.Cada formato diferente,provavelmente exigir maquinários novos ou reconfiguração,ou seja custo.
  9. Tem que ver a marca,e procura a internet pelo datasheet dela.Mas isto é comum,pois provavelmente consegue reduzir custo no processo de fabricação,padronizado alguns modelos.A imagem abaixo foi tirado de um datasheet da Panasonic
  10. No aliexpress uma vez não chegou o produto,abrir reclamação,vendedor não respondeu e aliexpress devolveu o dinheiro.Foi bem simples.
  11. Pelo que "decifrei" o circuito seria deste jeito:IM1.bmp,perceba que no caso de não tiver corrente o valor no divisor de tensão deveria ser 2.5V e no Arduíno também 2.5v. Meça estes pontos,e verifique os valores.
  12. Qual a tensão que dá entre o gnd e entrada do pino seu arduino? Qual é a tensão no divisão de tensão seu?(os resistores normalmente tem 5% de tolerância)? Contudo um valor de 330ma,é um erro dentro das especificações do datasheet. No datasheet:(Non-linerity±3%(10%—120% of rated input current) Se presta atenção este valor é apenas de 10% até 120% da taxa de corrente especificada,valor diferente disto o erro pode se maior.Se você deseja medir corrente baixa,procure outros modelos de sensor,e ler o datasheet antes,para ver se as especificaçoes te atenda
  13. Veja a marca do sensor e o datasheet,pois achei varios datasheet de diferente fabricantes,com especifcações diferentes: https://nicegear.co.nz/obj/pdf/SCT-013-datasheet.pdf http://webmeteobox.ru/docs/SCT013.pdf Coloca um esquematico do circuito que você testou,inclusive com os valores do componentes,assim ficaram mais fácil para alguém te ajudar.
  14. Depende de como é seu sensor,as vez ele tem um valor de ofset de 300ma. Precisaria muito mais detalhe para o pessoal entender seu problema.
  15. Bem,você colocar no inicio isto : "int estadobotao = digitalRead(botao);" e depois para ler o botton você coloca isto "if (estadobotao == HIGH)", contudo o que você fez foi ler o botão uma vez apenas no inicio,depois fica no mesmo resultado. Você teria varias alternativas: Na linha anterior a "if (estadobotao == HIGH)" você coloca "estadobotao = digitalRead(botao);",mantendo todo resto codigo. Troca "if (estadobotao == HIGH)" por "if ( digitalRead(botao)== HIGH)",mantendo todo o resto do codigo. Troca "int estadobotao = digitalRead(botao);" por " #define digitalRead(botao)" Essas seriam algumas alternativas,mais seria interessante você dar um aprofunda em c,tentar entender "define",isto é bom principalmente quando principal refatorar código.
  16. Imprimindo no paint dava certo para mim,abre o arquivo no paint,vai em arquivo>propriedade,verifica qual resolução do paint,no meu caso é de 96dpi,depois eu vou em imprimir>configurar pagina e trocar para ajustar pagina em %,e faço (resolucao_paint/resolucao_imagem)*100,colocou no lugar,considerado: resolucao_paint=96dpi resolucao_imagem=600dpi O valor seria (96/600)*100=16% Já fiz isto varias vez,é sempre deu certo.Os caras das graficas ficam bravo,pois querem imprimir no corel draw,mais todas as vez imprimiram errado.Então vai no paint mesmo.
  17. Neste site da microchip você consegue fazer isto. http://www.microchip.com/maps/microcontroller.aspx
  18. @Jair Massagem Koetz Não conheço este compilador,mais provavelmente no anterior era um pwm por software,e no ultimo por hadware
  19. Provavelmente este pwm que você estudou é gerado via software,se você tiver um microcontrolador com pwm embutido,você basta configurar a frequência e a porcentagem que queria deixar ativo,e ele executa paralelamente a sua aplicação. O que @MOR pode se suficiente para sua aplicação,a interrupção alguns microssegundos,dependendo do clock e da quantidade de instrução que executar,mais dificilmente passaria de 10us,considerado que você que gerar um saida de 500hz(2ms),isto torna um valor de 0.5%,que para maioria das aplicações poderia se desprezado. Ou você alguma outra forma de gerar sinal como@Isadora Ferraz falou. Mais a forma mais eficiente seria outro micro com pwm interno,e possivelmente com mais processamento,é sempre bom exagerar no começo,ai depois vai aprimorado,reduzido codigo e custo.
  20. Porque o pic12f675? Você poderia uma interrupção por timer do pic,para gerar pwm por software,ou utilizar outro pic com pwm interno. No caso de interrupção por timer ele iria parar tarefa atual,pular para interrupção,depois de termina a rotina na interrupçã,voltava a tarefa. A solução ideal para que você apresentou seria um pic com pwm,se querer utilizar ainda este pic12f675 procure por interrupção do timer(para mim seria bem simples,mais não sei qual seu nivel de conhecimento nesta area).
  21. Poderia mostra seu circuito,fala algo mais que precisa,pois está muito vago.
  22. @Guilherme Benincá Fernandes A eeprom demora em media 4ms para gravar cada byte.Caso você utiliza o ccs ,ele desabilitar a interrupção enquanto está gravando na memoria eeprom(os datasheets da microchip recomenda isto também). Provavelmente você recebe pulso enquanto está gravando na eeprom. Há varias opçõe: 1°)Você poderia utilizar uma memoria eeprom externa ou mesmo um sd card. 2°)Gravar apenas quando desligar o sistema ou falta de energia 3°)Desconsiderar amostras de velocidade quando gravar na eeprom 4°)Gravar aos poucos na memoria caso tenha muito dados

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!