Eu acidentalmente curto os pinos 10 e 11, com 10 configurados para saída HIGH e 11 configurados para entrada. O pino 11 não está funcionando. Como faço para descobrir qual componente eu queimei?
Especificar qual placa Arduino seria ajudaria a identificar componentes possivelmente comprometidos, a partir do esquema.
Anindo Ghosh 12/04
@AnindoGhosh I marcado ele Uno ^
asheeshr
Respostas:
21
Suposição: Como o modelo específico do Arduino não foi especificado, use o Arduino Uno para ilustrar esta resposta. A lógica se aplica de maneira idêntica aos demais Arduinos, para suas respectivas tensões de pinagem e microcontrolador.
Como pode ser visto, os pinos 10 e 11 são pinos GPIO padrão.
Qualquer GPIO não pode emitir uma tensão maior que a tensão de alimentação do microcontrolador (V CC ) , no Arduino. Para o Uno V CC é de 5 Volts.
Qualquer pino GPIO pode suportar tensão de entrada de até V CC e um pouco mais alto (5,5 Volts é tolerado como padrão)
Além disso, quando qualquer GPIO do Arduino está configurado para entrada, ele fica em um estado de alta impedância, impossibilitando a passagem de corrente suficiente para as tensões envolvidas, para que ocorram danos.
Assim, os pinos de curto-circuito 10 e 11 não podem causar danos a nenhum dos pinos , nas circunstâncias relatadas na pergunta.
Agora vamos examinar as possibilidades alternativas:
Se o Uno for alimentado pelo conector de barril CC em vez de 5 volts da conexão USB ou outra fonte de alimentação regulada, o pino Vin emitirá uma queda de 1 diodo abaixo dessa tensão de entrada: Isso seria em torno de 8,3 Volts se a alimentação fosse de 9 Volts bateria conectada ao conector do barril.
O curto-circuito desse pino VIN a qualquer um dos pinos analógicos ou digitais do Arduino ( exceto pinos específicos protegidos por resistores ) provavelmente destruirá o circuito interno de diodo / proteção ESD para esse pino no microcontrolador ou destruir o microcontrolador em si. Essa pode ser a causa do problema.
Outra hipótese é que o pino 11 foi exposto a alguma outra fonte de alta tensão, além do Vcc da placa. Isso pode ocorrer devido à EMF de um motor ou à alta tensão (pode ser de mais de 10 volts ) gerada por um dobrador piezoelétrico (alto-falante piezo) se ele bater contra alguma coisa. Isso pode causar danos aos diodos ESD / circuito de proteção, conforme observado acima
Em seguida, a descarga eletrostática da eletricidade estática pode danificar qualquer pino GPIO, mesmo enquanto o dispositivo não estiver ligado. Você passou o cabelo no penteado e depois tocou a placa do Arduino em algum momento, por exemplo? O problema só aparecerá mais tarde, ao tentar usar esse pino no quadro, portanto é difícil identificar a causalidade.
Finalmente, se dois pinos estiverem configurados para a saída , um alto e outro baixo, e estes estiverem em curto, o pino "Alto" verá um curto-circuito no pino "Baixo". Essa fonte para dissipar a contenção pode fazer com que o microcontrolador aqueça e, embora os microcontroladores AVR normalmente tenham proteção de saída nos GPIOs, isso pode fazer com que um ou outro dos pinos pare de funcionar - embora a falha completa do microcontrolador seja mais provável nesse caso .
Dito isto, se por qualquer motivo o Pino 11 não executar mais entrada ou saída, o circuito de proteção interna correspondente do MCU é irrevogavelmente danificado. Não há como reparar isso. Isso foi abordado bem na resposta da Manishearth .
Considere-se feliz por todo o microcontrolador não ter sido destruído e codifique novamente seus aplicativos para não usar mais o Pin 11.
Dica pessoal: Bloqueiei os soquetes VIN nas minhas placas do Arduino há muito tempo, colocando um pouco de isolamento neles, para evitar a exposição acidental de qualquer fio de jumper a essa tensão. Se eu realmente precisar usar o VIN algum dia, passarei uma hora agradável lutando para extrair aquele pedaço de isolamento preso lá.
Não deve ser possível destruir seu pino, colocando a saída em curto. Os pinos de entrada podem suportar tensão no nível Vcc, portanto, eles devem poder lidar com a tensão de saída mais baixa do outro pino. Além disso, eles têm uma alta impedância, de modo que devem protegê-los da maioria das coisas. (Veja a resposta de Anindo nesta mesma pergunta para mais detalhes). No seu caso específico, acho que aconteceu um dos seguintes:
No entanto, você pode destruir pinos com as seguintes conexões (extraídas desta excelente postagem , existem muitas outras maneiras gerais de destruir um Arduino):
Pino de saída ALTO para GND
Pino de saída ALTO para baixo
Aplique qualquer tensão acima de 5.5V a um pino (isso pode destruir mais do que apenas o pino)
Em relação ao que fazer em geral quando você destrói um alfinete:
Nesses casos, o pino do microcontrolador está queimado e não pode ser reparado. A única maneira de corrigir isso é substituir o microcontrolador (se for um pacote DIP, isso é relativamente barato e fácil) ou comprar uma nova placa. Ao substituir o microcontrolador, você terá que gravar o gerenciador de inicialização no novo microcontrolador (a menos que o tenha fornecido com o gerenciador de inicialização) se desejar programar o Arduino via USB.
Examinando os esquemas, as seguintes placas possuem pinos conectados diretamente ao microcontrolador.
Uno
Mega
Duemilanove
Vitória Régia
Fio
Nuova Generazione
Diecimila
Nas placas a seguir, existem alguns pinos protegidos e difíceis de queimar:
Outra coisa bastante barata de se tentar é comprar outro atmega328, descarregar seu chip danificado, carregar o novo no soquete, gravar o gerenciador de inicialização e ver se isso ajuda. Supondo que sua placa tenha um DIP atmega328 com soquete.
Respostas:
Suposição: Como o modelo específico do Arduino não foi especificado, use o Arduino Uno para ilustrar esta resposta. A lógica se aplica de maneira idêntica aos demais Arduinos, para suas respectivas tensões de pinagem e microcontrolador.
Consulte este diagrama de pinos do Arduino Uno : ( fonte )
Agora vamos examinar as possibilidades alternativas:
Dito isto, se por qualquer motivo o Pino 11 não executar mais entrada ou saída, o circuito de proteção interna correspondente do MCU é irrevogavelmente danificado. Não há como reparar isso. Isso foi abordado bem na resposta da Manishearth .
Considere-se feliz por todo o microcontrolador não ter sido destruído e codifique novamente seus aplicativos para não usar mais o Pin 11.
Dica pessoal: Bloqueiei os soquetes VIN nas minhas placas do Arduino há muito tempo, colocando um pouco de isolamento neles, para evitar a exposição acidental de qualquer fio de jumper a essa tensão. Se eu realmente precisar usar o VIN algum dia, passarei uma hora agradável lutando para extrair aquele pedaço de isolamento preso lá.
fonte
Não deve ser possível destruir seu pino, colocando a saída em curto. Os pinos de entrada podem suportar tensão no nível Vcc, portanto, eles devem poder lidar com a tensão de saída mais baixa do outro pino. Além disso, eles têm uma alta impedância, de modo que devem protegê-los da maioria das coisas. (Veja a resposta de Anindo nesta mesma pergunta para mais detalhes). No seu caso específico, acho que aconteceu um dos seguintes:
No entanto, você pode destruir pinos com as seguintes conexões (extraídas desta excelente postagem , existem muitas outras maneiras gerais de destruir um Arduino):
Em relação ao que fazer em geral quando você destrói um alfinete:
Nesses casos, o pino do microcontrolador está queimado e não pode ser reparado. A única maneira de corrigir isso é substituir o microcontrolador (se for um pacote DIP, isso é relativamente barato e fácil) ou comprar uma nova placa. Ao substituir o microcontrolador, você terá que gravar o gerenciador de inicialização no novo microcontrolador (a menos que o tenha fornecido com o gerenciador de inicialização) se desejar programar o Arduino via USB.
Examinando os esquemas, as seguintes placas possuem pinos conectados diretamente ao microcontrolador.
Nas placas a seguir, existem alguns pinos protegidos e difíceis de queimar:
No entanto, se você queimar um pino, não há muito mais a fazer do que substituir o microcontrolador.
Se você parece propenso a queimar pinos, pode experimentar o robustoduino .
fonte
Outra coisa bastante barata de se tentar é comprar outro atmega328, descarregar seu chip danificado, carregar o novo no soquete, gravar o gerenciador de inicialização e ver se isso ajuda. Supondo que sua placa tenha um DIP atmega328 com soquete.
fonte