
Neste artigo, explicarei como resolver um erro comum no Arduino:
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
Contexto
Depois de muito tempo sem usar o Arduino, peguei minhas duas placas (a original e a Elegoo ) para fazer algumas atividades com minha filha. Conectei-as, tentei usar o comando "piscar" para verificar se tudo estava funcionando corretamente, mas quando fui enviar o sinal para a placa, recebi o erro conhecido.
Arduino:1.8.5 (Linux), Tarjeta:"Arduino/Genuino Uno" avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied Problema subiendo a la placa. Visita http://www.arduino.cc/en/Guide/Troubleshooting#upload para sugerencias.
Tanto meu PC quanto meu laptop têm o Ubuntu 18.04 instalado.
Solução
Começo clicando no link sugerido . E sigo os passos.
Em Ferramentas/Placa Arduino/Genuino Uno está marcado
Em ferramentas / porta serial /dev/ttyACM0

E, conforme sugerido na documentação, caso haja problemas com os drivers e permissões, eu abro o terminal e executo:
sudo usermod -a -G tty yourUserName sudo usermod -a -G dialout yourUserName
onde seuNomeDeUsuário é o seu nome de usuário 🙂
Agora eu saio da minha conta e entro novamente. E, por precaução, reinicio o computador/notebook.
Ainda não funciona e a documentação do Arduino não ajuda mais. Então, continuei pesquisando em fóruns e blogs. Se, neste ponto, isso também não funcionar para você, e você estiver na mesma situação que eu, siga os próximos passos.
O comando `ls /dev/ttyACM0` retorna `/dev/ttyACM0`.
ls -l /dev/ttyACM0 retorna crw-rw—- 1 root dialout 166, 0 nov 26 16:41 /dev/ttyACM
Com isso, confirmamos que a porta existe.
Iremos conceder as permissões e verificar se o nosso usuário possui as permissões necessárias.
sudo chmod a+rw /dev/ttyACM0 id devuelve 20(dialout)
E vejo que o usuário está dentro do grupo dialout , então essa parte está correta.
O que funcionou para mim foi reinstalar o Arduino.
Se você verificar
which avrdude
E se nada mais funcionar, reinstalar o Arduino deve resolver o problema.
sudo apt install --reinstall arduino
E se você não conseguiu resolver o problema, deixe um comentário e eu tentarei ajudá-lo(a).
Ferramenta para corrigir o problema AVRDUE
Existe um script para resolver esse problema . Você pode tentar para ver se ajuda. Eu ainda não o usei, mas deixo aqui porque acho que pode ser um recurso útil.
AVRDUDE
Deixo aqui algumas informações para melhor compreensão do que é o AVRDUDE. O nome vem de AVRDUDE – AVR Downloader / UploaDEr.
AVRDUDE é um utilitário para baixar/carregar/manipular o conteúdo da ROM e da EEPROM de microcontroladores AVR usando a técnica de programação em sistema (ISP).
https://www.nongnu.org/avrdude/
O AVRDUDE foi iniciado por Brian S. Dean como um projeto pessoal, enquanto programador da série de microcontroladores Atmel AVR.
Você pode encontrar o software e muito mais informações no site do projeto.