Ir ao conteúdo
  • Cadastre-se

MatheusLPS

Membro Pleno
  • Posts

    2.903
  • Cadastrado em

  • Última visita

Tudo que MatheusLPS postou

  1. @vtrx A sua ideia é boa. O único problema que vejo é ficarmos dependendo do LCD usado. Se mudar o lcd, as posições podem alterar. Aí gasta tempo procurando esses locais de novo. Me diz o que você acha da minha ideia: Armazenamos as strings com os nomes dos menus em variáveis. Vai ocupar memória mas por enquanto vamos imaginar que temos sobrando. Bom. Sabemos o tamanho do LCD. Vamos supor que seja 16 colunas visíveis. Escrevemos o primeiro menu. Damos o comando de rotacional. Depois de digamos 7 rotacionadas, sabemos a quantidade de caracteres foi comida e podemos saber a quantidade de caracteres do outro menu deveria estar aparecendo. Com isso e um pouquinho de manipulação de strings, conseguimos montar uma nova string que será impressa. O meu medo é o ccs ser ler do nessa manipulação. Mas ele tem uma função chamada memcpy onde podemos fazer isso. Na verdade a string não é uma string. É apenas um vetor com as letras em cada posição. Com isso fica fácil retirarmos somente as letras que precisamos é montar uma string nova a cada rotação para um lado. O negócio vai ser eu tentar essa ideia pois estou sem pc. Estou até hj sem fonte. Mandei para um cara tentar arrumar pós não estou nem um pouco afim de gastar 500 reais em uma nova fonte agora. Vou esperar 1 semana. Se não der para consertar a minha corsair TX750, terei que comprar outra mesmo. E quanto isso. Sem programar...... que tédio. .... Falou
  2. @rodrigocirilo Essa questão de estar trocado a função eu sei o que é. Aposto que você está testando no proteus. Não sei porque mas ele entende ao contrário. Na prática fica certo. E sim. Antes mesmo de ver o vídeo fiquei imaginando se o texto antigo sairia antes de entrar o novo ou não. Terei que pensar um pouco como fazer esse efeito do jeito que está. Tem diversas formas. Momento brainstorming..... Falou
  3. @rodrigocirilo Não consigo ver o vídeo onde estou, mas se for rotacionar, segue exemplo: http://forum.clubedohardware.com.br/forums/topic/897842-rotacionar-mensagens-no-lcd/#entry5063266 Falou
  4. @mroberto98 Tem um livro que é considerado a bíblia da comunicação USB. Ele abrange toda a comunicação como um todo dando detalhes e tudo mais. Veja ele é depois parta para a parte mais específica que você citou. USB Complete Third edition, Everything You Need to Develop Custom USB Peripherals escrito por Jan Axelson. você encontra ele por aí na net. Para aprendizado até q vai. Mas fazer um joystick para usar seriamente eu não embarcaria nessa. Já adianto. você usará a classe HID. Falou
  5. @mroberto98 Esse tipo de potenciômetro é conhecido como encoder rotativo ou potenciômetro encoder rotativo. Algo do tipo. Imagino que são muitos usados hj pois você normalmente tem um controle remoto para alterar o volume e assim não fica preso ao limite do potenciômetro normal. Mas já vi aparelho de som que quando você alterava o volume pelo controle, ele girava sozinho o knob de volume. Estou justamente querendo alterar meu jogo de som da logitech dessa forma pois ele não possui controle remoto. Eu usaria um mini PIC ou um mini atmega juntamente com esse tipo de potenciômetro infinito e usaria um receptor de controle remoto e no final um potenciômetro digital. Isso tudo ficaria bem pequeno e eu substituiria o potenciômetro comum de 1 M que tem na minha caixa de som. Só tenho que confirmar se tem potenciômetro digital de 1M. No caso duplo. Falou
  6. MatheusLPS

    Proteus ULN2003

    Não vejo motivo para não funcionar. Falou
  7. MatheusLPS

    Proteus ULN2003

    @vtrx Pensa comigo. Quando você usa um transistor como chave. Na prática você costuma deixar a base do transistor flutuando? Ou você tem o costume de no caso do NPN colocar um resistor de pull-down e no PNP um resistor e pull-up? Veja que esse problema que você encontra é do Proteus. Veja sua imagem inicial com o LED e a chave. O Proteus não entende que a chave aberta, ele não deveria deixar os 5V "passar". Isso é problema na simulação. SEMPRE quando uso chave desse tipo no Proteus, eu coloco um resistor ou de pull up ou de pull down. Na prática, só a chave basta. Mas quando a chave estiver aberta, a base do transistor ficará flutuando.... Isso é um problema? E como você disse acima. Sim, nível alto na entrada, você terá nível baixo na saída. Nível baixo na entrada, você tem open drain. A saída do CI é o coletor. Isso você já viu lá em cima na imagem.... Falou
  8. MatheusLPS

    Proteus ULN2003

    @vtrx A dica do colega circuit está quase lá. Veja que o Proteus não mostro o pino 8 do CI, que é o ground. Dessa forma ele é automaticamente colocado no ground. Como são apenas transistores internamente, tente colocar um resistor ligado ao ground do lado que aciona. Pios de 1 a 7. Sei que já usei esse Ci no proteus para acionar motores de passo. E funcionou. Deixa eu ver se encontro alguma imagem aqui no forum já que estou sem PC. EDIT: @vtrx Procura aqui: https://www.dropbox.com/sh/lghoxt6ecjtupjm/paKacMsXOM Isso aí são arquivos que upei a um tempo atrás. Procura por motor de passo. Lá tem um exemplo funcionando com esse CI onde ele desliga as bobinas do motor. Aqui não consigo acessar esse site se não eu já apontava a pasta correta. Falou
  9. MatheusLPS

    Proteus ULN2003

    Se minha fonte do pc não tivesse morrido ontem eu ajudaria. Já passei por isso. RIP Corsair 750TX...... Falou
  10. Então sua ideia seria ficar em loop lendo o DS1307 e se os segundos mudarem, atualiza o LCD. Hum... a ideia é interessante mesmo e não exige o jumper. Vou esboçar algo e passo ao joseca. Realmente, sem o DS1307 fisicamente aqui terá que ser assim. Falou
  11. @rodrigocirilo Vai usar PIC ou arduino? Falou
  12. @aphawk Pelo que o datasheet fala, a funcão do pino 7 é exatamente essa. Veja a parte sublinhada: Quando tenho uma descida do clock, o relógio é atualizado. Momento ideal de leitura. E sim, podemos deixar a temperatura lida já. @joseca, me diz qual pino você tem disponível no PIC aí para um jumper que vou modificar o código. Falou
  13. @vtrx Vou repostar o que escrevi ali em cima pois o forum tá doido: Hum... fui dar uma olhada no código agora direito dele. @vtrx Me diz uma coisa, nessa parte: temp++; if(temp == 10){ adc = read_adc(); //Lê canal 0 temperatura = (5.0 * adc * 100) / 1024.0; //Conversão para tensão. temp=0; } EDIT desnecessário: O fórum ta de sacanagem e comeu metade do que escrevi.. aff, ter que escrever tudo de novo..... Bom, voltando ao assunto: Não entendo o esquema o contador ali chegar até 10. Outra coisa. Algumas partes do código foram comentadas. Exemplo: /*if (sec == 255 ) { sec = 59; }*/ Quando for configurar o relógio, experimente baixar o valor da variável abaixo de 0 e veja o que acontece. Se continuar comentado, ela vai para 255 e não 59 como no exemplo acima. Sobre o backlight, ele depende do CCP1 que foi desabilitado. E o timer1 também foi. Ele era usado para desligar a luz depois de certo tempo. EDIT 2: Sim, o LCD é apagado a cada vez sim. Costume que tenho. Falou
  14. Hum... fui dar uma olhada no código agora direito dele. @vtrx Me diz uma coisa, nessa parte: temp++; if(temp == 10){ adc = read_adc(); //Lê canal 0 temperatura = (5.0 * adc * 100) / 1024.0; //Conversão para tensão. temp=0; }
  15. Instável em qual sentido? No código que o vtrx passou, apenas mude essa linha: printf(lcd_putc,"\f%s %02d:\%02d:\%02d\n%02d/\%02d/\%02d %f",dia_da_semana[dow-1],hrs,min,sec,day,month,yr,temperatura); Por essa: printf(lcd_putc,"\f%s %02d:\%02d:\%02d\n%02d/\%02d/\%02d %2.0f%cC",dia_da_semana[dow-1],hrs,mim,sec,day,month,yr,temperatura,0xdf); A única diferença é que ele colocou isso no final: %f. Nesse caso o compiladr decide quando colocar casa decimal ou não. Sugiro isso: %2.0f%cC Assim, você limita em nenhuma casa decimal, separa duas casas antes da vírgula e o %cC é para colocar o símbolo de ºC (0xDF). Falou
  16. @ Sendo chato: "Though the specs of the Beaglebone Black and the Raspberry Pi are quite similar, the latter has a major advantage when it comes to graphics processing. The Pi can output video at a full 1080p resolution, while the Beaglebone Black caps out at 1280 x 1024. Video decoding, 3D rendering and general GUI performance are all better on the Raspberry Pi. Further, the Raspberry Pi features both a full-sized HDMI port and an S-Video connector, making it easy to connect it to a display. The Beaglebone has only a single micro-HDMI port, which is located uncomfortably close to the board’s USB port. For media-heavy projects, or if you just want to use the board primarily as a small Linux computer, you’re better off going with the Raspberry Pi." Fonte: http://www.tested.com/art/makers/459278-everything-you-need-know-about-beaglebone-black/ EDIT: Nos comentários, um cara diz: "Just a note, he analog video output on the Raspberry Pi is RCA/Composite video, not S-Video. I'm sure they could have done S-Video, but although it's a better standard, it's also much less common and the connector is not as robust as an RCA plug." EDIT 2: http://makezine.com/magazine/how-to-choose-the-right-platform-raspberry-pi-or-beaglebone-black/ Falou
  17. Pessoal, só hj estou tendo tempo de ver isso. Bom, sobre o tempo de leitura do AD, conversão para temperatura, leitura do DS1307 e escrita no LCD, temos um tempo de 36mS medido com o Proteus. Apenas coloquei um output_high e output_low no início antes do AD e depois da escrita no LCD. Veja que na escrita, tenho um \f (apagar o LCD e escrever). Quando o Proteus para o programa no breakpoint logo depois da escrita, no Proteus, o LCD já está totalmente escrito. Não tenho o DS1307 aqui para medir na prática. Veja: e Estou tentando usar a ideia do @aphawk, usando o pino 7 do DS1307, mas parece que o proteus não quer simular ele. Estou dando uma olhada nesse momento no datasheet para verificar o valor do resistor de pull-up. Esse projeto é muito simples para dar esse tipo de problema. Não deveria estar acontecendo isso. @joseca Você chegou a deixar ele ligado por exemplo 1 semana e verificou se o horário atrasa ou adianta? EDIT: Entre ler o AD e ler o DS1307, o Proteus mostra um tempo de 6mS. Os outros 30mS são para escrever no LCD. EDIT 2: O pino 7 tem que ser habilitado via software, por isso ele não simula. Vou ver se essa biblioteca que usei tem essa função. EDIT 3: Achei onde ele desabilita o pino 7 logo de cara: void ds1307_init(void){ BYTE seconds = 0; i2c_start(); i2c_write(0xD0); // WR to RTC i2c_write(0x00); // REG 0 i2c_start(); i2c_write(0xD1); // RD from RTC seconds = bcd2bin(i2c_read(0)); // Read current "seconds" in DS1307 i2c_stop(); seconds &= 0x7F; delay_us(3); i2c_start(); i2c_write(0xD0); // WR to RTC i2c_write(0x00); // REG 0 i2c_write(bin2bcd(seconds)); // Start oscillator with current "seconds value i2c_start(); i2c_write(0xD0); // WR to RTC i2c_write(0x07); // Control Register i2c_write(0x80); // Disable squarewave output pin i2c_stop(); } EDIT 4: @joseca Temos um problema. Você já montou a placa. Usando o pino 7 para pegar o tempo, precisamos passar mais um "fio" entre o DS1307 e o PIC. Sobrou algum pino livre onde você possa fazer um jumper? Sei que no código que fiz usei o CCP1 para ligar o back light e o CCP2 para o botão de ajuste da hora. Tem como modificar o código para usar o PINO 7 a cada 1hz ele atualiza o display. Mas como eu disse, terá que fazer um jumper aí. E não poderei usar os CCPs. Terei que fazer por polling mesmo. Falou
  18. @NIGHT FALL Perfeita colocação. Ano passado, durante o verão, ouve uma descarga daquelas. Tudo estava fora da tomada como sempre para evitar dor de cabeça. Mas esqueci que o modem estava na linha telefônica!!! Resultado? Perdi uma placa mãe de um PC meio antigo 775 core 2 duo. Minha placa mão caríssima na época a ASUS Crosshair IV Formula segurou o tranco e queimou somente a rede onboard!!!! Sorte a minha. Tive que montar um PC quase do zero pois não valia a pena comprar uma mobo 775 mais. Fica a dica aí... Cuidado com a linha ADSL..... Hoje, troquei a rede cabeada pela wireless. Caso eu esqueça o modem ligado, só ele queima.... Falou
  19. Uma coisa que eu devia colocar em cada código é a não necessidade de usar o 16F877A para tudo. Nesse circuito aí um 16F690 ou outro menor e tenha canal AD funcionaria perfeitamente. Falou
  20. Vou fazer a modificação com a ideia do Paulo. Que foi muito boa. Mas tarde posto. Falou
  21. Como você está lendo essa tensão em cima dos capacitores? Como é esse circuito entre a alta tensão e entrada do PIC? Falou
  22. Pessoal, esse código foi desse tópico: http://forum.clubedohardware.com.br/forums/topic/862157-resolvido-relogio-com-ds1307-termometro-com-lm35-display-lcd-e-pic-16f877a/ De acordo com o @janascimento, ele testou e funcionou normal. O timer1 que configurei no código serve apenas para desligar o backlight depois de algum tempo programado. Por isso, acredito não estar relacionado com o problema relatado. Sobre : O uso do delay no loop principal de deu ao fato de a única função do PIC nesse circuito é ler do DS1307 e mostrar no LCD. Dessa forma, esse delay não atrapaçha em outras funções. Mesmo se atualizar o LCD em exatos 1 segundo, se atualização não estiver sincronizada com o DS1307, não vai adiantar. Bom, muitos já deram a resposta. Diminuindo o delay o LCD irá atualizar várias vezes por segundo e evita que ele pule algum número. Tente diminuir ainda mais. Como por exemplo 200mS. Diminua até ele começar a piscar, depois aumente um pouco até parar de piscar. Fora isso, só consigo imaginar o problema sendo no cristal do DS1307. Ele utiliza um cristal bem específico. Sobre a montagem, a mesma ficou muito bem feita. Queria eu ter essa paciência também. Falou
  23. Vale lembrar que a Intel disse em Janeiro de 2014 que iria lançar outra placa de desenvolvimento, na qual a chamou de Intel Edison. De início ela iria vir com o mesmo processador, mas dual core. Agora a Intel disse que irá vir com um Atom. Essa board deveria ser do tamanho de um SD card. Mas irá ficar maior por causa do novo processador. http://www.intel.com.br/content/www/br/pt/do-it-yourself/edison.html http://en.wikipedia.org/wiki/Intel_Edison Assim, acho muito interessante as empresas de hardware brigarem ou incentivarem esse tipo de mercado. Quem ganha somos nós. O problema que não me sinto confortável com esse tipo de placa. Estão começando a avançar demais. Tanta coisa que eu poderia fazer com PIC e com os ARM e tô aí engatinhando ainda. Falou
  24. @joseca De acordo com o código que você colocou, usei o DS1307 que é um RTC. Não consigo ver o vídeo de onde estou. Quando chegar em casa, dou uma olhada. Mas pelo que você falou, não deveria ocorrer isso não. Outra coisa, tem como você editar o post anterior ond colocou o código e colocar as tags e ? Falou
  25. @vtrx No caso de querer rodar um windows completo, eu iria, considerando a base de $60, com alguma configuração ITX, com placas mãe mini-atx. Exemplos: http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&N=100007623%20600038109&IsNodeId=1&name=Motherboard%2fCPU%2fVGA%20Combo&Order=PRICE Solução completa que no caso de um JukeBox, ficaria em conta eu acho. Só colocar memória e HD. Falou

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!