In this article I will explain how to solve a common error in Arduino:
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
Background
After a long time without using Arduino I have taken my two boards (original one and the Elegoo) to do some activities with my daughter. I connect them, I’m going to put the blink to see that everything is fine and when I’m going to send it to the board it returns me the well-known error.
A few days ago I bought an Arduino Starter Kit clone, from the Elegoo brand, an offer of $30. I have enough sensors and components that I have been buying, but I lacked many of those offered in the Kit and I thought it was a good idea to buy it and see if this type of products is worth it. They have 4 starter kits, the basic one, it’s the Super Starter that is the one I bought and then they have two more with more components. But the truth is that I took this one for the offer. I have been wanting to take the one that brings radiofrequency.
Reading some review of the Elegoo boards I see that they speak well of them, although there are people who complain about the compatibility of the board, which is an Arduino UNO R3 clone. My experience has been very positive the board has worked perfectly, compatible with the Arduino IDE without doing anything, just connect and go. I have loaded the blink, I have made some modification. I’ve tried some components quickly and everything works fine (Tested with Ubuntu 16.10, 18.04 and kubuntu 17.04)
I am not an expert in Arduino, although I have not used the plate for a long time. And the times I have done it has been as a tool, copying and pasting code already created but without much interest to really learn how it works but simply with the intention of making it work and find it useful. This Christmas I tuned the Nativity scene a bit with some LEDs and an HC-SR04 ultrasonic sensor. And I stopped to observe what had to be done.
I just wanted to do different things with two LEDs from the same signal. Oops I quickly stumbled upon what I think will be one of the first limitations you encounter when you start to mess with Arduino. And it is not necessary to complicate it much. I speak only of some LEDs, you realize that you cannot do what you want correctly.
Let’s make it clear from the beginning in Arduino multitasking does not exist, you cannot process two tasks in parallel. But there are techniques to make calls so fast that they seem to work at the same time.
I tell you the case in more detail. At Christmas I rode a Nativity scene and I wanted certain birth lights to come on when my daughters approached. Nothing complicated I just wanted two branches of LED lights to work differently depending on the values of a proximity sensor.