Ir ao conteúdo

.if

Membro VIP
  • Posts

    15.912
  • Cadastrado em

Tudo que .if postou

  1. ok... mas não vou desistir de você. Mais tarde vou tentar simular pra gente... t+...
  2. Não sei se entendi direito a descrição e circuito do amigo @rmlazzari58 mas baseando na tentativa de minimalizar acima, eu (eu) tentaria minimalizar ainda +... Sem lápis e papel pra desenhar, basta a descrição: um 74hc14 inversor cmos com histerese, divisor resistivo de Mohms na entrada medianamente calculado pra valor de v ficar entre a transição histerética e transição da bateria que quero monitorar.. praticamente o mesmo princípio do acima mas com 1 entrada só.
  3. De boa... Mas a gente evita* dar solução. O que se usa fazer é mostrar alternativas, dicas, nortes e afins. Alguns captam, outros nem tanto. Mas claro a gente respeita o limite de cada um e tenta melhorar cada vez mais. Mas se você prestar atenção, algo me diz que há a solução semicompleta pra tua inquietação nas minhas postagens. Veja se isso torna mais próximo do completo: if (segundo > 59 ) { segundo = 0; minuto++; if (minuto>19) {minuto=0;output_toggle(pin_a1);} //outro pino } Alterna o pino a cada 20 minutos... Altere pra fazer outra coisa. *Desc... Não consegui evitar...
  4. @Ygor Ferreira Campos de Sá sinto que você já sentiu choque em algum eletrodoméstico. Neste caso ele pode ter sido causado por fugas de corrente proveniente de umidades, sujidades e não raro a qualidade do e.d. Lembrando que a norma permite 'choque' de até 250uA e que pessoas muito sensíveis podem sentir um desconforto. Mas não é prejudicial.. além do + você não vai dormir encostado em tal e.d. com esta corrente. E o choque pode ser anulado com aterramento correto... caso o e.d. se inclua na classe que exige aterramento.
  5. Nem eu. O que já vi é comparador tipo lm393 cuja pinagem é a mesma do lm358. Talvez há confusão;
  6. Use abraçadeira - tirrápia - enforca gato - cada um dá o nome que quer... poucos imagens pra tirrapia no google .. leia-se tirrápia Ou barbante... Em tempo: me lembrou do tempo de uma tal linha parafinada (não acho no google pra vos mostrar). Havia técnicas e regras pra unir um manojo de fios com ela no ramo eletrônica da aviação. A parafina dava uma travada em cada nó especial de uma volta.
  7. Se você não usar o botão < code > não tem como interpretar direito. Considere ler isso... E tem+... Por ser um desafio relativamente simples eu até que poderia tentar te ajudar um pouco mais mas isso... e isso... são belos convites para minha despedida pois há impressão de desistência de diálogo. Portanto a dica que dou é melhore o aspecto visual do seu post eventualmente futuro - nos dois sentidos - pra que alguém que te for orientar se sinta mais a vontade. boa sorte. edit... #INT_TIMER0 void TIMER0_isr(void) { clear_interrupt(INT_TIMER0); // Clear timer0 interrupt flag bit cnt++; if(cnt > 124) { cnt = 0; segundo++; // output_toggle(PIN_A0); } } funciona aparentemente bem, mas aqui while(TRUE) { if (segundo > 59 ) { segundo = 0; minuto++; output_toggle(pin_a1); //outro pino } }
  8. Então você tem a faca na mão. Só falta o queijo... Se seu tic tac é 4mS fica simples você temporizar com o tempo que quiser meu amigo. Digamos que você queira 1segundo. Quantos 0.004 você tem em 1? você pode fazer algo como: if (_4ms>250) {_4ms=0;segundo++;} e quantos segundos você tem em 20 minutos? Faça o mesmo: if (segundo>20*60) {segundo=0;corte_o_queijo();} Tenta e me conta...
  9. .if

    C Fazer tabelas em C

    ok mas se eu disser que funciona tem algum valor? Então funciona sim amigo! Fiquei olhando pra isso durante anos e deduzi simploriamente que ponteiro = &dado; //localiza variável inteira dado 16 bits dado ocupa 2 bytes na ram. ponteiro acha ele. *((unsigned char *)(ponteiro) + 0)=i2cr(12); //preenche seu conteúdo com 8 bits MSB e *((unsigned char *)(ponteiro) + 1)=i2cr(13); //LSB agora que achou, *ponteiro+0 preenche seu conteúdo com um byte e *ponteiro+1 com o outro. i2cr() retorna 1 byte de 8 bits - cujo endereço é o argumento - gravados duma memória eeprom i2c. De fato isso adveio de uma necessidade de gravar/ler um float 32bits numa eeprom i2c o que ficou algo como: float dado; ponteiro = &dado; //localiza variável float dado 32 bits *((unsigned char *)(ponteiro) + 0)=i2cr(12); //+0=só pra harmonia visual *((unsigned char *)(ponteiro) + 1)=i2cr(13); // *((unsigned char *)(ponteiro) + 2)=i2cr(14); // *((unsigned char *)(ponteiro) + 3)=i2cr(15); // E havia feito isso com union e struct mas achei a solução acima mais elegante e minimalista. Re-percebo agora que a solução casting da minha inquietação já estava a mão há anos . Vou analisar suas outras soluções sim! Pode ser útil quando eu usar um mc que não seja um pic10f2xx com seus infinitos 256bytes de rom e 15 de ram E descobri porque não estou conseguindo criar tópico . A qualquer momento vou publicar alguma contribuição sobre o tema otimização do uso de memória pra mc de baixa capacidade no forum microcontroladores com a técnica que desenvolvi... Mas confesso que pode não ser totalmente útil pois hoje em dia os mc's estão maiores de recursos e baratos. Mas pelo menos vou descarregar algo lá.. ou puxar a descarga kk abç & sucesso!
  10. Permita-me um derradeiro dedo calejado prático - de novo mais uma vez, caso fosse um caso real: não é nada extremamente difícil um step up pra +V e -V maiores a partir de 3V3 pra corrente baixa, o que supostamente é caso de sensores. Além do +, este 3v3 pode advir de uma maior V que poderia ser usada para tal. .. No caso se fosse bateria ou pilha haveria a questão do consumo que poderia ser contornada com uma alimentação temporária do sensor apenas no momento de sua leitura caso este forneça informação rapidamente e/ou não seja necessária rapidez na aquisição. Devo ter causado congestão do mundo real ao sumido autor kk Boa sorte.
  11. Ajustando após a acertada observação do amigo Paulão... Condicione ou baixe a impedância de cada um com um simples seguidor de tensão, aplique no multiplex antes de capturar pelo mc ... se fosse um caso real, claro.
  12. Eu, da faculdade. EDIT – Tampouco eu.. mentalidade calejada em modo hard que atravessou 2 séculos e 2 milênios não faço ideia de como uma Engenharia num Software se aplica à vida real. @alexandre.mbm .. pensando bem..faço sim.. taí Paulão, Moris e afins que com curso superior põe a mão na massa.. coisa rara hj em dia e pode ser sim que hajam tais engenheiros a participar do forum... p.ex. o amigo que gentil e pacientemente me orientou recentemente e tive sucesso! @arfneto + um pequeno grande abraço distante
  13. .if

    C Fazer tabelas em C

    Percebo agora que seu bom exemplo já tinha a solução... sorry por não ter tido lido. ? Ainda patino nos ponteiros, vetores e afins mesmo após anos. Mas reconheço seu valor que aos poucos me apontam P.ex. neste mesmo fonte uso este algoritmo ponteiro = &dado; //localiza variável inteira dado 16 bits *((unsigned char *)(ponteiro) + 0)=i2cr(12); //preenche seu conteúdo com 8 bits MSB e *((unsigned char *)(ponteiro) + 1)=i2cr(13); //LSB gentilmente cedido pelo colega xults do asm51.com.br há muitos (e muitos) anos. De fato nem sei direito como funciona.. E nem ele mesmo se lembrava na época De fato neste mesmo fonte uso este artifício pra registrar 3 status e uma informação de 4 bits em 1 byte na eeprom.. Portanto, lido com bits sim... e apesar de nossa distância, o que nos une é maior e você abrangeu muito bem Agradeço de novo seu tempo e empenho em compartilhar... tmj
  14. Parece que você divide os 8MHz que entra no prescaler portanto aplica 62500Hz no timer. Refaça as contas. Lembrando que por ser 8bits ele divide no máximo por 256 ao ser alimentado com 0 ou nem ser alimentado. Lembrando que pra dar mais precisão você precisa usar cristal externo com freq multipla de base 2
  15. .if

    C Fazer tabelas em C

    Casting deu certo! você é o cara! add_flash=(unsigned int)&flash_text; Sumiu o warning! Qualquer dia publico o algoritmo todo no forum mc. Como disse, há economia significativa pro caso de mc 8 bits da família pic cuja flash é composta de palavas 14bits quando se deseja escrever muitos textos, menus e etc...(o meu caso). Abç e receba um aperto de mão virtual! Só me bateu uma curiosidade de como union - uma das mais sinistras entidades do c - poderia ajudar a contornar isso.. mas xapralá... por hora me satisfez!
  16. .if

    C Fazer tabelas em C

    Exatamente este é o ponto: preciso do endereço em forma de char (de fato int) pois ele vai ser argumento de uma função que vai achar os dados na flash... não necessariamente string. Um micro resumo: #asm PSECT txt_flash,class=CODE,local,delta=2 GLOBAL _flash_text _flash_text: dw 't'<<7+'e','x'<<7+'t','o'<<7+'1','2'<<7+'3','4'<<7+'5','6'<<7+'7','8'<<7+'9','&'<<7+'%' #endasm E a função pra extrair o texto extern const unsigned int* flash_text; unsigned int add=&flash_text FLASH_READ(add); //retorna em dois registros do mc Meio que está dando certo apesar do warning Um detalhe: este mc (pic16fxx) tem word de 14bits e sabemos que não existe palavra de 14bits no c portanto este é um artifício pra juntar dois caracteres 7bits cada num word 14bits. Há economia considerável de memória. Numa busca vi que já se desafiaram a isto mas de forma complexa mas não da forma minimalista e simplória que me autopropus. Vou tentar talvez... Talvez na seção microcontroladores pois pode não ser totalmente inútil pros colegas de chão de fábrica. ... portanto sinta-se a vontade em não dar prosseguimento a este. Agradeço a participação
  17. Olá amigo. Não conheço este mc e nem o compilador... Eu (eu) prefiro ter uma visão do hw e não me prender apenas ao sw. Apesar de eu não ter achado rapidão a imagem do timer deste mc, ele é tradicional e se assemelha à este... Você vai ter que usar a imaginação algo como: 32Mhz/4->entra 8MHz no contador prescaler prescaler/256->31250Hz no contador final TMR0 digamos que eu (eu) queira 250Hz na saída: devo fazer 31250/125=250 Sabendo que ele conta acima e seta o flag na contagem 255...0 devo alimentar o TMR0 com 255-125=130 a cada passagem pela interrupt... Pronto.. agora você tem uma interrupt a cada 1/250seg. Incremente variáveis pra conseguir o tempo que quiser a partir deste. Obs1: o timer1 é 16bits o que pode lhe ser mais eficiente Obs2: tentei escrever devagar pra você entender melhor mas mesmo assim posso ter cometido alguma gafe. Mais tarde dou uma conferida...
  18. .if

    C Fazer tabelas em C

    Olás... Não estou conseguindo criar tópico mas este se aproxima do meu desafio. Já consigo ler tabelas há algum tempo. O que quero agora é "apontar" pra uma área da memória - rom/flash e lê-la diretamente... ok também já consegui. Mas aparece o incômodo warning const unsigned char *txt={"12345678abcdefgh"}; unsigned char t=&txt; //illegal conversion of pointer to integer Lembrando que trabalho no micromundo dos mc's. Como este lance de ponteiro ainda é meu p.n.s., será que mesmo funcionando ele corre o risco de criar vida própria durante o funcionamento e aplicar a lei de murphy? Existe contornos/soluções tranquilizadoras? O curioso é que aqui não me deu warning: // Online C compiler to run C program online #include <stdio.h> const unsigned int *txt={"12345678abcde"}; int main() { unsigned int t=&txt; // Write C code here printf("End= "); printf("%x",t); return 0; } https://www.programiz.com/c-programming/online-compiler/ Na real: extern unsigned int const *dados; unsigned int t=&dados;//illegal conversion of pointer to integer #asm PSECT flash_dados,class=CODE,local,delta=2 GLOBAL _dados _dados: //escritos diretamente na flash com a definção do assembler dw 1000,2000,3000 //... dw 12345,56789,03,04 //... #endasm @arfneto @Diego Mendes Rodrigues obrigado
  19. Dica: consulte o d.s. do pic24 que tem no simulador e compare com o seu. Numa olhadela rápida percebo que eles têm muito em comum. Como a simulação não é crítica, penso que você pode testar com o que o proteus oferece.
  20. Primeiramente melhoras e forças pra você e sua família, ok? Legal amigo. Também passo por perrengues inescrevíveis. Apesar da ciência que casa ser humano vivo do planeta está sujeito a tal, o meu, no meu pontinho de vista, é o pior de toda a existência do universo. Ainda bem que o próprio me empresta alguma força pra suportar. Mas parece que o abalo aumenta com o tempo, né? 2 No ytb tem a opção de reduzir a velocidade, qual site é este, você devia ter traduzido já e um abraço de todos pra você também Quando você não consegue alongar, você automatiza o alongamento kk
  21. Na minha concepção artística o ganho e seu controle pode ser o mesmo pra todos independente da resistência (impedância). Um ampop comum tem alta impedância de entrada o que tende a ser viável pra todos... bem pelo menos você não mencionou a frequência que esta sim é um fator complicador na escolha do ampop. Numa 2a concepção, existe mc que possui ampop na entrada, o que pode sem um facilitador. A não ser que seu professor te desafiou a projetar ampop que varia automaticamente o ganho dependendo da impedância do sinal. Neste caso é de fato mais desafiador. Não devo te ajudar nisso. E finalmente, caso fosse um caso real a dica que daria é usar apenas uma entrada de um mc e colocar multiplexador analógico com 16 entradas algo como 2x cd4051 com controle pelo mc, óbvio...
  22. Ainda não sabemos que tipo de bomba e lavadora é esta. Supus ser uma de lavadora/máquina de lavar. De toda a forma você já constatou que a água entra pelo eixo então você já tem a causa. Sua graxa pode dar vida adicional. Não tenho esta informação. Além do + depende do uso, obviamente. kibon... não pare de mexer, adquira conhecimento pela prática. E claro, compartilhe.
  23. Baixa qualidade do produto. O eixo ou bucha se desgasta com mais rapidez. Algo que ajudaria era uma lubrificação frequente. Mas na teoria não há acesso ao eixo. Na prática existe a possibilidade de acessar mas tem que ter um pouco de habilidade, vontade, tempo e alguma falta de grana.. este último é bem mais fácil.
  24. Pra uma cara pilha 9v durar + num analógico... uma ideota que me passaria pela cabeça se tivesse uma era algo como um circuito quase bem simples de autodesligamento (mult digital tem isso) que permaneça ligado pelo tempo da leitura.. Afinal não vou ficar olhando pro mult o tempo todo. Imagino algo muito minimalista como um mosfet canal n com uma chave push button entre o + e o gate, um capacitor de 0.1uF...1uF em paralelo com um R de 1M...10M entre G e S... vai mantê-lo ligadão por de dezenas a centenas de segundos. ... Um pequeno click para num botão, um grande tempo pra uma medição.
  25. O controle pode estar sendo influenciado pelos retornos ruidosos eletromagnéticos do motor. Deixe + longe, una os gnds potência e controle na fonte, capacitor (p a nF), diodo antiparalelo com com motor e alguns etc tem algo pra dar certo... principalmente se aplicar a maior tensão permitida pelo seu módulo. ,,, mas se com baixa V tá dando pau, então .. só sei que nada sei.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!