Ir ao conteúdo
  • Cadastre-se

.if

Membro VIP
  • Posts

    15.266
  • Cadastrado em

  1. Voltemos um pouco ao monitoramento do peso. Aperte o cinto pois lá vamos em +1 viagem mental... Existe máquina de lavar de vários Kg diferentes. Por acaso você pesa a roupa antes de colocar na máquina? Quem em sã consciência pesaria 10 ou 11kg - já vi dos 2 tipos - pra não sobrecarregar a máquina? Pois bem, imagine agora que você apresentou o protótipo na sua feira de tcc e conseguiu convencer os acionistas as brastemp e consul que tal pesagem é interessante, agrega valor, a um custo tão baixo que se repassar pro consumidor ele nem vai perceber. Pronto: já pode se ver milionário. Imagine o sistema minimalista ao extremo algo como um (01) led bicolor: apagado=sem peso, verde=tudo bem, pode por mais roupa, laranja (ou vermelho e verde acessos)=suficiente, e vermelho: tire a roupa. Nada contra você colocar + leds (clique) mas geralmente empresas torcem o nariz pra investimentos maiores. Na chegada da estação mental, se você conseguir reduzir o custo do sistema com sensor de vibração, eu permito que você aplique não só no setor industrial mas em virtualmente em todos os ramos... doméstico, automotivo, aviação, ferroviário, ... todos que possuem sistemas críticos sofríveis por desgastes. Agora sim, pode descansar sua mente na sua ilha recém comprada
  2. Uma coisa que pode virar produto de verdade e de fato ganhar uma boa grana são sensores pro setor industrial pra uso nas máquinas. Temperatura, corrente, tensão --- puff!--- e etc são fáceis demais e nem merecem comentários mas sim podem ser incorporadas neste daqui ó: Sensor de vibração. Essencialmente um acelerômetro colocado no motor ou em algum lugar estratégico. Ele fica lá a vida toda desde a montagem zero do sistema mecânico. O sistema registra o valor da vibração momento zero e vai monitorando durante a vida. Ao atingir determinado valor, avisa o setor de manutenção para averiguar/trocar e etc alguma peça p.ex. se há algum desbalanceamento, desgastes e etc. Serve tanto pra manutenção corretiva como preventiva. Para teste conceitual mental, imagine um no seu ventilador. Se novo ele vai fazer barulho zero. Alguns meses de uso ele já ficar irritante. Esta irritação é que o sensor acima vai captar e informar. Obviamente pra negócios isso não é "coisa pra criança" mas como tcc até que é bem bacana e quase bem fácil de fazer com um sensor de vibração
  3. Este Vídeo https://i.imgur.com/fzhdqSn.mp4 foi feito a partir deste fonte: #include <ioavr.h> #define B8__(x) ((x&0x0000000fLU)?1:0) \ +((x&0x000000f0LU)?2:0) \ +((x&0x00000f00LU)?4:0) \ +((x&0x0000f000LU)?8:0) \ +((x&0x000f0000LU)?16:0) \ +((x&0x00f00000LU)?32:0) \ +((x&0x0f000000LU)?64:0) \ +((x&0xf0000000LU)?128:0) #define HEX__(n) 0x##n##LU #define b8(d) ((unsigned char)B8__(HEX__(d))) /* for upto 16-bit binary constants, MSB first */ #define b16(dmsb,dlsb) (((unsigned short)b8(dmsb)<< \ + b8(dlsb)) /* for upto 32-bit binary constants, MSB first */ #define b32(dmsb,db2,db3,dlsb) (((unsigned long)b8(dmsb)<<24) \ + ((unsigned long)b8(db2)<<16) \ + ((unsigned long)b8(db3)<< \ + b8(dlsb)) /* Sample usage: b8(01010101) = 85 b16(10101010,01010101) = 43605 b32(10000000,11111111,10101010,01010101) = 2164238933 */ #define SinDivisions 32 //200 #define microMHz 16 #define freq 60 #define period microMHz*1e6/freq/SinDivisions unsigned int const tab_sen[]= { 0,349,694,1031,1356,1667,1960,2231,2478, 2697,2887,3046,3171,3261,3316,3334 }; unsigned char tmp; unsigned char num; unsigned char trig; unsigned char led; unsigned int a0; static unsigned char dtrig; float Vac; void setup() { TCCR1A = b8(10110010); TCCR1B = b8(00011001); TIMSK1 = b8(00000001); ICR1 = period; DDRB = b8(11111111);//tudo saída DDRC = b8(11111110);//PORTC0=entrada analógica DDRD = b8(11111111);//tudo saída ADCSRA=b8(10000111); //hab. adc, prescaler 128 ADMUX=b8(01000000); //ref=vcc asm("sei"); //hab. interrupção } #pragma vector = TIMER1_OVF_vect __interrupt void basic_timer(void) { tmp=num; //1º quadrante de 0 a 90º if (num>=16) tmp=16-num;//2º if (num>=32) tmp=num-32;//3º if (num>=48) tmp=48-num;//4º OCR1A=OCR1B=tab_sen[tmp]; //alimenta hw com seno if (num==31)//sincronia com o loop { if (trig++>15) {trig=0;PORTB_Bit5^=1;}//led tô vivo em PB5 } if (num==16) dtrig=0xff; if (num++>63) num=0;//fim da tabela } unsigned int analogRead(unsigned char ch) { unsigned int result; ADMUX=b8(01000000)|ch; // delay_ms needed for the stabilization of the ADC input voltage ch=20; //aproveita variável pra dar um atraso while(ch--);// asm("NOP"); // Start the AD conversion //ADCSRA|=b8(01000000); ou ADCSRA_Bit6=1; ou... ADCSRA_ADSC=1; // Wait for the AD conversion to complete //while (ADCSRA&b8(01000000)) ou while(ADCSRA_Bit6); ou.. while(ADCSRA_ADSC);// asm("NOP"); result=ADCL; //o hw do mc exige que se capture ADCL primeiro result+=(unsigned int)ADCH*256; return result;//ADCL+ADCH*256; } void main(void) { setup(); for(;;) { while(dtrig==0);// asm("NOP");// sinc. com interrupt a0=analogRead(0); //captura logo após atingir Vp PORTD_Bit7=1; //só pra mostrar o momento da captura PORTD_Bit7=0;//no osciloscópio dtrig=0; //aguardar momento Vp //Serial.print("Ad="); //Serial.print(a0); //Vac=((float)a0*0.03447); //Serial.print(" Vac="); //Serial.println(Vac); } } Extremamente minimalista: não precisei fazer 'adaptação técnica' - funcionou como manda o figurino da linguagem - , ocupou 560 bytes em contraste aos 4K do arduino. Perceba que apenas 16 senos em cada quadrante já compõem a onda senoidal pura. Como se repetem, o pulo do gato [original] foi indexá-los de acordo com sua posição. Vide comentários no fonte. Também este compilador não possui notação binária 0b1010101.. Não contava com a astúcia de algum "sem noção" mas com muita noção e tempo que criou aquelas intricadas e inexplicáveis macros b8(1010101) pra nós. Perceba a variação da senoide em função da carga bem como os valores ADCH e ADCL lidos na janela watch. Próximo desafio é usá-los pra fazer a correção da Vac. De novo, a ideia é que a correção pela realimentação seja tão mais raṕida possível que se aproxime do ... do França. A propósito, bem bacana este módulo. Não preciso mas senti muita vontade comprar um
  4. Eu nem ia participar mas senti vontade registrar isso: Eu admiro d+ o povo africano que mesmo com necessidades extremas ainda conseguem fazer coisas incríveis. Chorei mesmo ao assistir o filme https://negre.com.br/o-menino-que-descobriu-o-vento-um-drama-biografico/ Também já os vi fazendo esculturas, máquinas e bicicletas de madeira e etc e com zero recursos tecnológicos. Apenas com vontade, imaginação, criatividade, motivação e etc disponíveis Bem, nesta linha de pensamento, e meio que voltando ao título do tópico, idealizei um sensor de peso com duas "moedas" com um dielétrico emborrachado formando um capacitor. Pressionando as "moedas", há aproximação o que altera a capacitância e se esta fizer parte de um oscilador ou simples carga descarga, pode ser usada como sensor pra balança. Outra ideota: certa feita medi a R de uma esponja antiestática - ou espuma, esponja condutiva e afins. Ao pressionar a R caía. Teorizei comparadores formando um bargraph com leds .. E existem outras ideias (minhas) como p.ex. um potenciômetro seguro por uma mola com uma haste que o movimenta pelo peso, e um monte de etc conceituais... nunca montei nada disso. Lembrando que a ideia não é medir o peso com precisão extrema. A ideia é ter noção visual da força da pressão sendo feita no sensor. Bem.. já que o moleque desistiu, vou deixar estas ideias/sementes pra alguém do povo supracitado. Alguém que não tem como adquirir a tal célula de carga tampouco arduinos e cia mas está cheio de vontade/motivações/hormônios técnicos e etc e tem algum tipo de acesso a peças sucateadas. Pena que não somos "vizinhos" senão lhe daria algo mais que ideias pois possuo muitas peças eletroeletrônicas e mecânicas compartilháveis. Boa sorte ao autor e sucessos a você, caro amigo africano presente neste forum.
  5. O google deve te iluminar bem mais (clique) do que esta velha carcaça que vos escreve. O que talvez ele não diga é que você pode usar a IDE arduina com um esp32. Com ele você pode ter o diferencial de enviar dados pra rede wifi ou bluetooth e avaliar os dados p.ex. num smartphone ou pc. O legal é que te envolve você e sua equipe na tal IOT que é uma tendência do momento pra ajudar a emergente IA a dominar o mundo
  6. @MOR_AL Num 1º momento usei calculadora mesmo mas esta calculadora https://www.omnicalculator.com/pt/fisica/calculadora-frequência-de-ressonancia dá resultados diferentes do seu mas bem semelhante ao meu lá de trás. De fato estou usando 60Hz mesmo. ..sim mas são resistências da bobina mesmo ok? No caso o default do simulador é 1mR mesmo. .. distorce a onda. O que mais deixou senoide foi o 0.5 mesmo. O simulador com mosfet fica muuuiito lento e as vezes instável.. dá algum tipo de erro e pára. Vou parar de usar ele com mosfet e fazer testes de realimentação com trafo direto no pino do mc cuja simulação é bem rápida. Em breve faço teste real pra saber - já que ninguém me iluminou - se trafo comum dá resultado com com este spwm doidão aí... Meu indutímetro sumiu. Vou ter que usar gerador de sinais + osc pra calcular o C ressonante
  7. Dica: meça cada uma delas - se isoladas: cada par de fio - e faça uma fonte de valor fixo pra cada. Vai ser uma multifonte diferentona e legal até. Agora escolha a maior e adapte um regulador step down pra fazer uma fonte ajustável/variável. Me lembro vagamente que o amigo Moris @MOR_AL fez isso agora há pouco e publicou aqui. Se ele achar que deve, poderá linkar-lhe sua publicação.
  8. @MOR_AL e eu ainda menos .. Refiz a conta da ressonância mas deixei em 60Hz mesmo. C=116uF com seus mH. Agora até que quase deu igual ao do real do França...Tive que aumentar o R shunt pra 10mR pro osc captar. E pra aparecer as ondas abaixo tive que intuir um fator de acoplamento 0.5 (o tal M). Apesar do nome sugestivo, como não sou do ramo não sei exatamente o que significa. RP e RS são a R em mR. com zoom... Meio que tentou aparecer a senoide mas pelo menos mostrou os dentes ... amarelos. Na IDE arduina o código ocupou + de 3K - sem o tal bootloader - além de não funcionar a contento alimentando os dados de seno direto da flash e etc. Já num compilador de verdade ocupou 600B e, claro, lê da flash de boa. Mas pra tornar o projeto open source acho que vou ter que retornar ao arduino mesmo... pensando... em fazer em ambos só pra efeito de benchmarking França.. agora sim vi a figura.
  9. Moris deu isso... https://i.imgur.com/4eva8LB.mp4 A I é o amarelo. Dá uns 20A de pico. Pena que a senoide desmontou (azul). Não sei qual capacitor usar. O da ressonância 116nF não deu certo. Acho que depende mais da freq do pwm. Qual a indutância de um trafo 12+12 uns 30A 60Hz.. Acho que tenho algo do tipo. Ainda não aprofundei na evolução deste treco. De novo, este não é meu ramo. Só estou xeretando por estas bandas... @albert_emule não vejo sua imagem meu rei.
  10. continuo achando que uma proteção contra sobrecorrente com scr (clique) é uma boa pedida https://br.newtoncbraga.com.br/projetos/10410-circuito-para-protecao-de-fontes-art2340.html Um transistor pnp estrategica/tecnicamente colocado no lugar do relé tem de tudo pra agilizar as coisas.
  11. tmj... Também tenho outra teoria sobre a ausência visual do pulso ou dente de serra.. tanto faz: a granulação senoidal é de 100 unidades além do que a portadora ou freq do pwm é relativamente grande para o tipo de trafo e sua indutância. Indutância grande suaviza demais a coisa - não vos esqueceis que vejo fluxo de eletrons e não necessariamente a matemática da coisa ok?. Numa próxima revisão do sw vou reduzir o número de amostras de seno bem como a freq pwm pra ver. A ideia é colocar uns 8 ou 16 senos apenas - já que o hw se encarrega de 'senoidizar' a coisa. E também devo controlar apenas 1 quadrante da senoide - já que os outros 3 são 'espelhos' deste. Voltando a: Uma ideia inicial que tive foi fazer com opto pra efeito de isolação. Isso aqui deu quase muito certo: O vac do terminal não tem a ver com a 'realidade' da simulação. Já o Ad é o valor que efetivamente vou usar pra fazer a correção da tensão - largura do pwm. O salto felino que disse foi a captura naquele único ponto de pico da onda bem como a não necessidade de retificação e filtragem pra ler dc que em tese tornará o sistema mais rápido. A ideia é deixar o sistema bem parecido com que um hw dedicado faria mas com 'anabolizantes' O fonte abaixo é o que usei. Mas é só pra curiosidade mesmo pois devo evoluir a versão. Basicamente é só pra você - caro leitor experiente em c - perceber as bizarrices necessárias pra que funcionasse... e nem me pergunte de onde veio a inspiração para tal... #include <avr/io.h> #include <avr/interrupt.h> //#include <math.h> #define SinDivisions 200 #define microMHz 16 #define freq 240 #define period microMHz*1e6/freq/SinDivisions //static unsigned int lookUp[SinDivisions/2]; //não quis usar a matemática mas sim dados pre computados //Era pra ser "const" - na flash - mas não funciona.. suposto bug do compilador unsigned int lookUp[101]= { //tabela na ram 0,10,21,31,42,52,62,73,83,93,103, 113,123,132,142,151,161,170,179, 187,196,204,212,220,228,236,243, 250,257,263,270,276,281,287,292, 297,302,306,310,314,317,320,323, 325,327,329,331,332,333,333,333, 333,333,332,331,329,327,325,323, 320,317,314,310,306,302,297,292, 287,281,276,270,263,257,250,243, 236,228,220,212,204,196,187,179, 170,161,151,142,132,123,113,103, 93,83,73,62,52,42,31,21,10,0 }; unsigned int num; unsigned char trig; bool led; unsigned int a0,a1; bool dtrig; float Vac; void setup() { // double temp; for(int i = 0; i < SinDivisions/2; i++) { // lookUp[i] = (sin(i*2*M_PI/SinDivisions)*period); // temp = (sin(i*2*M_PI/SinDivisions)*period); // lookUp[i] = (int)(temp+0.5); lookUp[i]=lookUp[i+1];//insanidade pra funcionar: +1 suposto bug no compilador } TCCR1A = 0b10110010; TCCR1B = 0b00011001; TIMSK1 = 0b00000001; ICR1 = period; DDRB = 0b00110110; DDRD |= 0b10000000; // DDRC = 0b00001000; // pinMode(13, OUTPUT); Serial.begin(9600); Serial.println("teste"); sei(); } ISR(TIMER1_OVF_vect) { OCR1A = OCR1B = lookUp[num]; if (num==50) //sincronia com o loop { dtrig=1; //meio da tabela => vpico if (trig++>59) {trig=0;PORTB^=0b00100000;}//digitalWrite(13,led);led^=1;} //led tô vivo } if(num++ >= (SinDivisions/2)) num=0; } void loop() { dtrig=0; //aguardar momento Vp // sinc. com interrupt //outro suposto bug do compilador: while(!dtrig) asm("NOP");//Não era pra precisar do NOP a0=analogRead(A0); //captura logo após atingir Vp PORTD=0b10000000; //apenas para mostrar o momento da captura do sinal PORTD=0b00000000; //no osciloscópio //a1=analogRead(A0); //PORTD=0b10000000; //PORTD=0b00000000; Serial.print("Ad="); Serial.print(a0); Vac=((float)a0*0.03447); Serial.print(" Vac="); Serial.println(Vac); //Serial.write(10); //Serial.print(" a1="); //Serial.println(a1); }
  12. Moris ... coloquei um R de 1mR. Perceba o pico de 2.7mV=2.7A.. Ok não deve dar pra diagnosticar nada mas um detalhe: a corrente está 1/2 senoidal ou seja linear. Achei que ia aparecer o pulso pwm. Suponho ser devido ao ter ligado o gate direto no mc sem driver ou a indutância está filtrando ou algo do gênero... Ou era pra ser assim mesmo? O sinal amarelo é a V em 1mR A simulação fica muuuiiitooo lenta quando com este esquema. Estou fazendo teste com esta sem mosfet que fica menos lenta. Com alguns saltos felinos pessoais - sem google, IA e afins, já tive sucesso em ler a vac com este esquema minimalista com 2 resistores acima e mostrar no terminal. O foco agora é... A qualquer momento vos mostro minha saga até este ponto... Alerta de spoiler - o compilador arduino parece ter bugs. Tive que fazer uma verdadeira ginástica pra operar a contento. Penso em migrar pro Keil C ou IAR ou o XC8 da microchip mesmo...
  13. Isto não agrega nada. De fato até subtrai: Me (me) faz perder o interesse em ajudar. Afinal denota uma falta de interesse na área. Enfim...registre-se que o que você me leu não é necessariamente só pra você e resolver seu probleminha mas sim envolver abranger algo ou alguém mais amplo que em qualquer momento eventualmente caia nesta rede. Afinal este é forum de .. eletrônica .. portanto supõe-se um mínimo interesse pela área preferencialmente com um mínimo de conhecimento e, obviamente, um mínimo de respeito/gratidão. .. 1/2 escassos hoje em dia. De novo..., menos do que você disse lá em cima. Aí sim hein... concordo 100%. E pela ultima foto sua, você vai ter que aprender um pouquinho +. área da aerodinâmica/aviônica e afins... Edit ... consulte forum de aeromodelismo (clique)
  14. A parte da física, aerodinâmica, mecânicas e etc acho que você deve pesquisar ou pensar melhor. Provavelmente você quis perguntar algo como "como projetar um par de rádio transmissor e receptor para enviar comandos para um avião de controle remoto"... Neste caso uma (01) opção que vislumbro é você aprender a programar um mc qualquer - pode ser até na base do arduino. Depois (e só depois) disso você adapta módulos loRa no controle e no avião: cada um com seu respectivo mc, óbvio. O tx você estuda e adapta os sinais de p.ex. um simples controle tipo joystic pra pc. O mc lê/entende os sinais dos botões e envia via loRa pro outro loRa que está no avião que interage com sua eletromecânica. Este rádio loRa pode conversar até uns 15KM ou +. O legal é que ele pode tanto receber como transmitir dados. P.ex. das condições da bateria, temperatura, altura e um monte de etc que sua imaginação e sensores quiserem. Ou seja não precisa projetar a complexidade de um rádio tx e rx. O tal módulo LoRa mastiga a parte principal. E é superhipermega simples: é um simples "fio virtual bem grande" que conecta um tx num rx ok.. isto foi só uma ideota conceitual superficial e como tal, não detalho. Espero que sirva como semente pra você ou pra quem se interessar possa. Arado, preparo, fertilizações, irrigações e etc são por vossa conta. Ahhh A minha ideota acima deve custar bem menos que isso... mas tem o preço... ou melhor - oportunidade... .:. Vai ter que aprender um pouco.

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