Eu queimei um alfinete. Agora o que eu faço?

16

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?

O problema pode ser resolvido?

asheeshr
fonte
3
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.

Consulte este diagrama de pinos do Arduino Uno : ( fonte )


Arduino Uno pin-out


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

Anindo Ghosh
fonte
6
Bloqueando os soquetes VIN. Brilhante!
Jeff Severns Guntzel
9

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:

  • Ambos os pinos foram configurados para saída
  • Você colocou um short em algo e não percebeu
  • (Como você mencionou no bate-papo que o pino voltou a funcionar) acumulou poeira ou umidade embaixo do pino

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:

  • BT (pino 13, por um resistor de 1k)
  • USB v2.0 (pino 13, por um resistor de 1k)
  • Nano (pinos Rx / Tx, por 1k resistores)
  • Serial (pino 13, por um resistor de 1k)
  • Serial de um lado (pino 13, por um resistor de 1k)
  • Mini 03 (pino 13, por um resistor de 1k)

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 .

Manishearth
fonte
3

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.

Steve Cooley
fonte