Ir ao conteúdo
  • Cadastre-se

Controlar válvula Borboleta de acordo com RPM (Programação Arduino)


GustavoH93

Posts recomendados

Boa noite a todos este é a continuação deste tópico:

 

 

 

No final do tópico anterior terminei a montagem de uma válvula borboleta que vai usar um motor DC e duas chaves fim de curso, a ideia é simples  essa válvula precisa começar a abrir quando o motor do carro passar de 3000 RPM.

 

Para fazer isso usarei um arduino UNO, um sensor hall, ponte H  e um display LCD 16×2.

 

Para começar tenho essas duvidas:

 

  1. No eixo do comando de válvulas do motor fixei um pequeno imã e o hall vai identificar quando esse imã passar, mas o hall precisa de um resistor de 10K entre o pino 1 e o 3, esse resistor deve ficar perto do hall ou perto do arduino? Vou usar 1,5m de cabo manga, desses que tem 2 vias e uma malha por fora que serve de negativo e blindagem.
  2. Esse mesmo resistor do hall fica entre os 5v e o pino de sinal, ele é um resistor de pullup ou é um resistor que o hall usa para funcionar? É interessante usar o comando  INPUT_PULLUP no arduino para o pino que vai receber o sinal do hall?
  3. Para medir a RPM  basicamente preciso  medir a frequência e fazer o cálculo para converter em RPM, então posso adaptar um sketch de  frequencimetro e adicionar o calculo para converter em RPM correto? Vou pesquisar bastante sobre isso pois queria fazer com o menor numero de variáveis possível para deixar o código leve, futuramente vou implementar outras funções nesse arduino e quanto maior a velocidade do sistema melhor.

 

 

Link para o comentário
Compartilhar em outros sites

12 horas atrás, .if disse:

medir a freq é semiautomático prum mc. Interrompa a cada segundo, capture contador, zere contador.

Certo vou pesquisar bem, procurei por exemplos e existem muitos, mas apesar de ter a mesma função raramente os códigos são iguais, quero usar o pino 2 ou 3 que conta com interrupção, vai demorar um pouco mas acho que até domingo devo ter o código pronto, é bastante coisa para apreender.

 

12 horas atrás, Sérgio Lembo disse:

Então monte seu raciocínio pelo período e terás mais eficiência.  Faça o cálculo de RPM apenas quando for exibir o RPM no display.

Sérgio nesse caso o o invés de contar os pulsos que ocorrem dentro de 1 segundo para ter devo contar  por quanto tempo o sinal fica em um nível para mudar para o outro e saber o período?

 

Tipo assim: Supondo que levou um tempo para o motor completar uma volta, durante um certo tempo o hall fica em nível baixo para depois ir para o nível alto, nesse caso o arduino sabendo quanto tempo levou para ter o pulso multiplica este tempo de um segundo por 60 indicando a rotação por minuto.

 

Imagino que seria mais ou menos isso porque com uma volta completa daria para indicar a rotação no mesmo instante. por exemplo:

 

levou 1 segundo para receber o pulso, multiplicando 1 por 60 temos 60 rpm.

levou 0,5 segundo para receber o pulso, isso indica que em um segundo houveram duas voltas, multiplicando por 60 = 120 rpm.

 

seria isso ou viajei na ideia?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
9 horas atrás, GustavoH93 disse:

com uma volta completa daria para indicar a rotação no mesmo instante

Pra medir rpm baixo ou baixíssimo você pode lançar mão de um encoder rotativo ou similar. Basta saber quantos pulsos ele dá por volta. P.ex. pra medir infernal 0.666rpm é muito difícil medir baseando em rotações por minuto e impossível ter resposta rápida. Já a contagem das granulações - quanto menores=mais resolução - torna-se possível.

Link para o comentário
Compartilhar em outros sites

Medir o período é mais eficiente e preciso, principalmente quando se usa o capture do Timer1. Vai ter o controle muito mais preciso, giro a giro. Esperar 1 segundo para fazer contagem é tempo demais.

São 2 as funções que o Timer1 irá executar quando estiver rodando o programa: controle da rotação e controle do display se não estiver utilizando um display I2C, for daqueles mais comuns 16x2 sem módulo I2C. O envio de dados tem que ter a velocidade monitorada para funcionar. Assim sendo a configuração do Timer1 será feita dentro da função de medição para reparar outras interferências que a biblioteca do display e outras que utilizam o Timer1 possam ter realizado.

 

TCCR1A = 0;   // Seta modo de operação do Timer1
TCCR1B = 5;   // Seta Capture para borda de descida e preescaler para divisão por 1024
TCCR1C = 0;   // Seta modo de operação do Timer1
TIMSK1 = 0;
TIFR1 = 0;     // Inicializa flag do capture
while !TIFR1{  // Aguarda passagem da marca para iniciar contagem de tempo
};
TCNT1L = 0;    // zera contador
TCNT1H = 0;
TIFR1 = 0;     // Inicializa flag do capture
while !TIFR1{  // Aguarda passagem da marca para fazer contagem de tempo
};
sua_variavel = TCNT1; // Armazena tempo na sua_variavel

Note que dividi o clock do Arduino por 1024, em 16MHz isso significa que cada contagem equivale após a divisão a 64us. Não tive que aguardar por 1 longo segundo para fazer contagem, bastaram 1 giro + o que faltava para completar 1 giro, o que nos dá um máximo de 2 giros para realizar a tarefa. Pelo dito acima pretende fazer atuação quando aos 3000RPM. Fazendo as contas isso significa que se a passagem levar menos que 20ms o motor estará com rotação elevada. No nosso contador 20ms / 64us = 312 contagens.

 

Leia atentamente o Timer1 do processador 328P, pode ser que eu tenha esquecido de algum ajuste extra.

Aqui o link do processador 328P

 

Esqueci de inicializar a sua_variável. Coloque-a no início do programa para ser global. Lembre-se que será uma variável unsigned de 16 bits. Faça também uma constante.

c_rpm = 937500

Dessa forma, quando quiser indicar o RPM para o display

rpm = c_rpm / sua_variavel

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Permita-me...

A ideia de Serjão é boa mas se seu carro morrer, seu sistema pode morrer junto...

54 minutos atrás, Sérgio Lembo disse:
while !TIFR1{  // Aguarda passagem da marca para iniciar contagem de tempo
};

 

Um contorno pra isso

unsigned int tmout=0xffff;// ou word.. ajuste o valor de acordo com o clock
while (!TIFR1 && tmout--);

 

De fato acho que ele pode gerar uma interrupt a cada evento TIRF1... reflita sobre algo como:

void interrupt tirf1() //veja a sintaxe da interrupt no seu compilador
{
TIFR1=0;//zera flag
sua_variável=TCNT1;
TCNT1L=TCNT1H=0;
}

🙃

pensando bem. .pra rpm muito alta o sistema vai viver de interrupção. Um contorno seria habilitar ela de vez em quando.

 

off.. na edição somem botões 🤔

Link para o comentário
Compartilhar em outros sites

@.if

O registro TIFR1 é das flags e foi zerado na inicialização. Ele contém o capture e o overflow. O overflow é o bit zero e o capture é o bit 5 do registrador. O overflow do TIMER1 tem o nome de TOV1. Talvez uns códigos dentro do while para verificar se não houve disparo do overflow, tal como:

if TOV1 {

rotina de motor parado

};

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

É isso aí Serjão. No entanto há ideia de se utilizar o máximo possível os recursos de hw do mc. Com isso evita-se estas 'paradinhas' [em duplo sentido] de software. Por isso menciono interrupts e tal. No conceito que citei lá no outro post imagine o pulsos por volta aplicados numa entrada contadora de um timer. Se tiver paciência de esperar 1 minuto, basta colher o dado rpm diretamente a cada minuto. Se não, espere 6 segundos e multiplique por 10, ou por 0.6 e por 100 ou ... De fato não é esperar sem fazer nada literalmente. Continue trabalhando e dá uma passada lá de vez em quando pra colher o dado. De fato nem precisa: deixe uma interrupt fazer isso pra você. No main() ou loop() você vai ter sua_variavel global novinha em folha autocolhida o tempo todo.

 

Provavelmente o autor - o mais interessado - já entendeu o conceito e já pode pensar em decidir o que fazer

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@.if

O projeto acima fica melhor se feito por um STM8 ou STM32. Nos 32 bits já se tem uma facilidade maior de lidar com grandes números. Com 8 bits também dá mas uma simples conta que tenha um valor > 255 faz a CPU dar muita volta, o código de uma só linha quando compilado gera muitas linhas de assembler. O bom do STM8 e STM32 é que vem com muitos timers, dependendo do modelo mais de um de 16 bits. Deixa-se o Timer1 para o sistema e usa-se o Timer3 (ambos são de 16 bits com 4 canais de capture/compare) para monitoramento da rotação.

Sobre o uso do interrupt para evitar a paradinha, ao invés de usar o interrupt externo fazer com que o capture gere a interrupção, fica muito mais precisa a leitura.

 

Uma correção: parece que os bits das flags para serem resetados tem que escrever 1 neles. Deixo esse refinamento para o interessado.

Link para o comentário
Compartilhar em outros sites

11 horas atrás, .if disse:

Pra medir rpm baixo ou baixíssimo você pode lançar mão de um encoder rotativo ou similar. Basta saber quantos pulsos ele dá por volta. P.ex. pra medir infernal 0.666rpm é muito difícil medir baseando em rotações por minuto e impossível ter resposta rápida. Já a contagem das granulações - quanto menores=mais resolução - torna-se possível.

imagino que esse seja o motivo dos carros hoje em dia usarem roda fonica que tem uns 180 dentes, com todos esses dentes dá uma resolução bem alta, o que é vital para a injeção eletrônica controlar o funcionamento do motor

 

Mas nesse caso o motor gira no mínimo a 900rpm, a baixo disso ele fica instável e querendo morrer, nesse caso 900 / 60 = 15 rpm, lembrando que o hall fica no eixo do comando de válvulas que gira na metade da rotação do motor, seria 15 / 2 = 7,5 voltas por segundo ou 7 pulsos por segundo mais ou menos, já que o motor varia um pouco não fica cravado em 900 rpm...

 

7 horas atrás, Sérgio Lembo disse:

Medir o período é mais eficiente e preciso, principalmente quando se usa o capture do Timer1. Vai ter o controle muito mais preciso, giro a giro. Esperar 1 segundo para fazer contagem é tempo demais.

São 2 as funções que o Timer1 irá executar quando estiver rodando o programa: controle da rotação e controle do display se não estiver utilizando um display I2C, for daqueles mais comuns 16x2 sem módulo I2C. O envio de dados tem que ter a velocidade monitorada para funcionar. Assim sendo a configuração do Timer1 será feita dentro da função de medição para reparar outras interferências que a biblioteca do display e outras que utilizam o Timer1 possam ter realizado.

 

realmente 1 segundo é muito tempo, se fosse fazer o código tradicional pensei em contar o tempo em 200ms ao invés de 1 segundo, mas o meu display já tem o I2C soldado nele Sérgio, será que por ser I2C atrapalha o funcionamento? Falando nisso o I2C funciona com comunicação serial não é? 

 

A ideia deste projeto é usar o arduino para medir as rotações e controlar a borboleta, mas ele é o inicio de algo maior, conseguindo a informação de RPM confiável futuramente este arduino iria mandar essa informação para outro arduino que usaria um display LCD para mostrar essas e outras informações, e imagino que para comunicar os dois arduinos seria interessante usar a comunicação serial...

 

Estava pesquisando sobre Timer1 é uma programação  beem avançada e lendo a documentação ao usar o Timer1 perde-se a função PWM nos pinos 9 e 10, pelo que li é possível usar o timer1 e o timer3, mas usar esse médoto pode afetar algumas funções do arduino como a comunicação serial... Ou dá pra fazer a comunicação serial funcionar normalmente mesmo usando timer?

 

6 horas atrás, .if disse:

Se tiver paciência de esperar 1 minuto, basta colher o dado rpm diretamente a cada minuto. Se não, espere 6 segundos e multiplique por 10, ou por 0.6 e por 100 ou ... De fato não é esperar sem fazer nada literalmente. Continue trabalhando e dá uma passada lá de vez em quando pra colher o dado. De fato nem precisa: deixe uma interrupt fazer isso pra você. No main() ou loop() você vai ter sua_variavel global novinha em folha autocolhida o tempo todo.

 

Provavelmente o autor - o mais interessado - já entendeu o conceito e já pode pensar em decidir o que fazer

No seu conceito @.if seria uma programação mais simples usando  uma base de tempo e usar a função interrupt para não perder nenhum pulso, aguardar  por exemplo 0,3  segundos e depois multiplicar por 200.

 

A ideia do @Sérgio Lembo  é usar o contador do hardware do 328P para contar o período que acontece o giro, é bem mais preciso e rápido, mas a programação é bem mais avançada, e afeta algumas funções do arduino.

 

é isso?

 

Vamos indo por etapas então pessoal, vamos primeiro conseguir medir o RPM e mostrar no display depois fazer a função que vai comandar a borboleta, é bastante informação e eu sou infinitamente mais lento que o 328P para guardar e aprender tudinho 😅 mas devagar chegaremos lá.

Link para o comentário
Compartilhar em outros sites

@GustavoH93

O I2C é serial sim mas o 328P tem seu motor dentro, não necessita usar o timer para controle.

Na rotação máxima, 3000RPM, teremos 25 passagens do Hall por segundo. No intervalo dessas passagens o 328P consegue realizar mais de meio milhão de instruções. O que mais temos é tempo.

 

Faz questão de utilizar o Arduíno? Ele tem apenas 1 Timer de 16 bits e pelo que entendi pretende utilizá-lo para fazer PWM. Que tal um processador ARM de 32 bits por um preço mais baixo? O Arduíno utiliza o processador AVR de 8 bits. Qualquer número maior que 255 gera uma baita ginástica. Se for de ponto flutuante (float, número com casa decimal) a coisa deixa de ser ginástica e passa a ser academia. você está fazendo instrumentação, isto é, regular uma função a partir de dados recebidos por sensores. Um ARM M3 possui ponto flutuante, isto é, capacidade de realizar contas com valores decimais muito mais rápido. Além disso os 32 bits possibilitam contas com valor de até 4 bilhões em apenas 1 clock. Possui, além dos timers colocados pelo fabricante um timer da CPU de 24 bits para as funções de sistema que necessitem de temporização. Então ficam todos os demais timers disponíveis para o seu programa. Também possui DMA, um recurso avançado que na medida em que você for evoluindo vai te facilitar e muito a vida. E tudo isso a partir de R$30,00, mais barato que o Arduino. Terá que comprar a placa de programação, o STLINK, mas é barato, uns 30 e serve para todos os STM8 e STM32. E ainda consegue utilizar a IDE do Arduino. O modelo STM32F103 te dá a partir de 32kb de programação, 3 timers de 16 bits, todos com capacidade de PWM além de outros de 8 bits. Possui um clock de 72MHz, dá até para abaixar isso sem comprometer a performance necessária ao seu projeto.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
32 minutos atrás, Sérgio Lembo disse:

Que tal um processador ARM de 32 bits por um preço mais baixo? O Arduíno utiliza o

... num blue pill (clique)

Figura-2-1024x545.png.webp

https://embarcados.com.br/blue-pill-stm32f103c8t6/

Tenho mas nunca usei. Isso daí também só comprei porque tava barato 😁

mas k entre nós eu prefiro um esp32 que já incorpora wirilesse's (tenho alguns tb 🤪)

Link para o comentário
Compartilhar em outros sites

9 minutos atrás, .if disse:

Tenho mas nunca usei. Isso daí também só comprei porque tava barato 😁

mas k entre nós eu prefiro um esp32 que já incorpora wirilesse's (tenho alguns tb 🤪)

Para IoT o Esp é imbatível no custo. Mas olhou o Timer dele? Muito restrito. Para esse uso fica fraco demais.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
1 hora atrás, Sérgio Lembo disse:

olhou o Timer dele?

Não. Mas se for minimamente superior a um pic10f322...

 

1 hora atrás, Sérgio Lembo disse:

o Timer dele? Muito restrito. Para esse uso (*)

 

... um pic10f322 com seus únicos 2 timers 8bits dá conta. Timer0 conta e timer2 interrompe, registra, zera timer0. E sim, sobra tempo, recurso e pino pra enviar prum display i2c.

(*) medir e mostrar rpm num display, e alguns etc

 

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, .if disse:

Foi desenhado para IoT. É excelente para a aplicação ao qual se propõe. Quem o adquire vai querer fazer IoT e a aplicação os usa na integralidade, não sobra nada para outras aplicações. Mas dá para ligar relés a distância e outras coisinhas através das GPIO e também possui I2C para conversar com outros mc. É um bom produto para IoT.

Link para o comentário
Compartilhar em outros sites

3 horas atrás, .if disse:

..paremos...  pra não contribuir com irritante virada de página 😖

tu realmente tem uma certa aversão a virar página né? pior que a maioria dos tópicos que eu crio acaba ficando bem longo kkkkk

 

6 horas atrás, Sérgio Lembo disse:

Faz questão de utilizar o Arduíno? Ele tem apenas 1 Timer de 16 bits e pelo que entendi pretende utilizá-lo para fazer PWM.

Não necessáriamente o arduino, mas vou explicar melhor o projeto assim vocês podem opinar melhor.

 

@.if lembra quando você comentou no outro tópico para usar dois esp32 e usar bluetooth para mandar os dados para um celular?

Aqui:

 

Pois bem, naquele tempo não era bem interessante porque queria simplificar, e toda vez que ligar o carro teria que ligar o celular ligar o bluetooth...

Mas depois que comentou aquilo e eu conversando com o pessoal no grupo do whatsapp sobre as modificações que fazem nos carros vi este vídeo e fiquei surpreso, o cara usou uma tela de LCD o app Realdash Khadas Vim 1 e Arduíno Mega. Realmente é bastante coisa mas fiquei beem interessado:

 

 

 

No vídeo ele usou bastante coisa, mas pesquisando no site do Realdash ele informa que dá pra conectar um tablet ou celular por bluetooth, usb e até wifi no arduino. o arduino manda as informações via serial para o aplicativo e as informações aparecem no formato que quiser, relógio de ponteiro, barra barra gráfica ou só o numero escrito mesmo...

 

Então planejo trocar o painel do carro que é antigo e colocar um tablet no lugar dele com esse aplicativo, no grupo que participo quem tem isso já fez uma gambiarra no android para quando ligar o carro o tablet liga e já abre o app automaticamente, é bem interessante fazer dessa forma porque posso colocar várias informações dentro do painel sem ter que colocar um LCD tft pendurado no painel, e também assim não preciso ficar esquentando a cabeça com a velocidade baixa do LCD...

 

 

 

Então resumindo seria assim, este arduino iria contar o RPM e controlar a borboleta, ao mesmo tempo que iria mandar essa informação para o arduino mega, o mega vai receber a informação de RPM e receber a a informação de outros sensores no carro e mandar para o tablet com o app realdash.

 

Agora sabendo melhor como vai ser o esquema qual me indicam para prosseguir? Não precisa ser necessáriamente o arduino, pode ser o Esp32 ou ARM M3, o que acharem que se encaixa melhor...

 

Aqui o vídeo do arduino mega comunicando diretamente com o tablet:

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Legal este app. É gratuito? É completo?

 

19 horas atrás, GustavoH93 disse:

Então resumindo seria assim, este arduino iria contar o RPM e controlar a borboleta, ao mesmo tempo que iria mandar essa informação para o arduino mega, o mega vai receber a informação de RPM e receber a a informação de outros sensores no carro e mandar para o tablet com o app realdash.

 

Eu resumiria ainda mais... Apenas o arduino e um módulo blue tooth a conversar direto com o app. Ou mais ainda.. apenas o esp32 que já tem b.t. Como ele é muito rápido teoricamente dá pra emular o hw (segundo Serjão) faltante nele.

Em tempo... este módulo foi mais um na minha lista que comprei por curiosidade. Este sim brinquei com sucesso com um pic16fxxx + o app bluetooth electronics. Brincadeira semi séria pois não tinha como ver dados importantes num projeto em que só tinha leds

Mhq_C_8zPLGMQShGLKHNSYIvhqDKRqoJIhhmt1rY

Me lembro vagamente de vos ter mencionado ele em algum momento no passado... 🤔

 

 

19 horas atrás, GustavoH93 disse:

uma certa aversão a virar página né?

Se virar... se vira... E me esquece 😁

  • Haha 1
Link para o comentário
Compartilhar em outros sites

Em 11/02/2023 às 14:42, .if disse:

Legal este app. É gratuito? É completo?

é gratuito, mas como na maioria dos aplicativos algumas coisas só ficam liberadas na versão paga, esse aplicativo tem todos os reloginhos e medidas disponíveis gratuitamente, mas os modelos mais bem desenhados e bonitos só na versão paga mesmo, tem até o modelo original do painel do carro:

 

image.thumb.png.3f593c4b72097c43d128bd6637b1e210.png

 

mas no grupo falaram que dá pra criar um app para android ler as informações e criar os visores do jeito que quiser, deve ser mais complexo ainda, então por hora vamos indo por partes kkkkkk

 

Em 11/02/2023 às 14:42, .if disse:

Me lembro vagamente de vos ter mencionado ele em algum momento no passado... 🤔

foi naquele meu outro tópico mesmo.

 

Em 11/02/2023 às 14:42, .if disse:

Eu resumiria ainda mais... Apenas o arduino e um módulo blue tooth a conversar direto com o app. Ou mais ainda.. apenas o esp32 que já tem b.t. Como ele é muito rápido teoricamente dá pra emular o hw (segundo Serjão) faltante nele.

então eu estava pensando em conectar o arduino pelo cabo usb, será que por bluetooth é melhor? O arduino vai ficar a meio metro da tela do tablet então não sei se compensa usar o bluetooth. De qualquer forma daria para usar o esp32 com os timers e lendo todos os sensores do carro e enviar os dados para o tablet mais rápido do que um arduino por cabo mesmo? O esp32 é muito mais poderoso que o arduino?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
13 horas atrás, GustavoH93 disse:

O esp32 é muito mais poderoso que o arduino?

segundo Serjão pra iot sim. Mas pelos recursos que possui, ele é mais barato.

 

13 horas atrás, GustavoH93 disse:

arduino pelo cabo usb

Eu (eu) acho que pelo b.t. que a grosso modo é uma simples interface serial, é menos difícil.

 

13 horas atrás, GustavoH93 disse:

usar o esp32 com os timers e lendo todos os sensores do carro e enviar os dados para o tablet mais rápido do que um arduino por cabo

Talvez sim talvez não talvez empate.

 

13 horas atrás, GustavoH93 disse:

é gratuito

13 horas atrás, GustavoH93 disse:

tem todos os reloginhos e medidas disponíveis gratuitamente

Da hora. Qualquer dia vou baixar pra ver.

 

Não virou... ufaaaaaaa  😁

 

 

 

 

8 horas atrás, GustavoH93 disse:

O maior problema é que o nível lógico do esp32 é 3,3v e do arduino é 5v

Você vai ter problemas beeem maiores que este.. que não é problema algum: bastam resistores pra converter de 5 pra 3 . Algo como...

--> [nível 5V]
        |
        -
      |4k7|
        -
        |
        +---[nível3V]-->
        |
      |10k|
        |
      [gnd]

De 3 pra 5 nem precisa pois o 5 já considera 3 como 1 🤔🤪

 

8 horas atrás, GustavoH93 disse:

fazer o arduino coletar as informações de todos os sensores e enviar essa informação ao esp e o esp repassar essa informação ao tablet

Não amigo. É + eficiente você possuir aquela plaquinha blue tooth que [acho que] já falei.

 

8 horas atrás, GustavoH93 disse:

em breve 🙃

Usei meus superpoderes de edição do passado distante 😁

Link para o comentário
Compartilhar em outros sites

20 minutos atrás, .if disse:

segundo Serjão pra iot sim. Mas pelos recursos que possui, ele é mais barato.

Estava vendo aqui se for conectar o arduino no tablet por bluetooth o módulo bluetooth pro arduino fica em uns 45 reais, um esp32 está na faixa de 50 reais, então acaba compensando pegar o esp se for conectar por bluetooth mesmo... 

 

O maior problema é que o nível lógico do esp32 é 3,3v e do arduino é 5v, nesse caso seria interessante fazer o arduino coletar as informações de todos os sensores e enviar essa informação ao esp e o esp repassar essa informação ao tablet? Tenho um arduino mega também, se usar ele para coletar informações dos sensores ele tem uma vantagem interessante de possuir bem mais pinos que o esp.

 

Agora estou em um dilema, colocar um esp sozinho, ou colocar o mega sozinho ou colocar o mega para enviar as informações ao esp e o esp enviar para o tablet 🤔

 

 

31 minutos atrás, .if disse:

Não virou... ufaaaaaaa  😁

em breve 🙃

Link para o comentário
Compartilhar em outros sites

23 horas atrás, .if disse:

Usei meus superpoderes de edição do passado distante 😁

além de eletrônica e programação tu manja de magica também né? Fiquei bugado aqui tentando entender como a sua resposta veio antes da minha pergunta kkkkkkk

 

23 horas atrás, .if disse:

De 3 pra 5 nem precisa pois o 5 já considera 3 como 1

dessa não sabia, mas não fica no meio do caminho que as vezes pode ser 1 e as vezes pode ser 0? Ou acima de 2,5 já é 1 de qualquer jeito?

 

23 horas atrás, .if disse:

Você vai ter problemas beeem maiores que este.. que não é problema algum: bastam resistores pra converter de 5 pra 3 . Algo como...

--> [nível 5V]
        |
        -
      |4k7|
        -
        |
        +---[nível3V]-->
        |
      |10k|
        |
      [gnd]

Huuum boa ideia!

 

23 horas atrás, .if disse:

Eu (eu) acho que pelo b.t. que a grosso modo é uma simples interface serial, é menos difícil.

 

23 horas atrás, .if disse:

Não amigo. É + eficiente você possuir aquela plaquinha blue tooth que [acho que] já falei.

 

Tu citou ela aqui em cima, é a primeira que apareceu no link que me mandou, Módulo Bluetooth HC-05 é essa plaquinha mais os arduino fazendo todas as funções e pronto?

 

Link para o comentário
Compartilhar em outros sites

@.if @Sérgio Lembo

 

Bom pessoal más notícias:  estou tentando apreender como fazer a programação e fiz uma coisinha simples: um código para acender o led quando o hall "sentir o imã" dessa forma iria ajustar a posição que vou fixar o hall com o motor desligado.

 

Na bancada para testar se estava funcionando o código aproximei o imã do hall e acendeu o led, então tirei da bancada e fui pro carro com o arduino, o hall, a fiação toda, etc...

 

chegando lá tudo conectado e ligado senti o cheiro de queimado, nem percebi mas a porcaria do imã que eu usei pra testar na bancada foi junto com as coisas e ficou grudado em baixo do arduino, é imã de HD esses de neodímio bem fininho, agora o arduino não conecta mais no computador e quando ligo na fonte 12v já sobe o cheiro de queimado, queimei o treco 😭

 

será que tem como reparar de alguma forma ou está condenado? Essa pecinha que marquei em vermelho esquenta ao ponto de não conseguir colocar o dedo, ele acho que faz a comunicação do arduino com o computador via USB, pior que pra dificultar é SMD e não sei se é só ele que queimou 😭😭😭

 

image.thumb.png.dab8390fa0288bb764b8d3eed7778325.png

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!