Compare commits

...

2 Commits

Author SHA1 Message Date
b2751e2d24
arduino on start blink 2023-02-24 19:18:18 +03:00
8c4d253694
arduino port access 2023-02-24 16:55:03 +03:00
2 changed files with 106 additions and 0 deletions

View File

@ -0,0 +1,40 @@
---
title: "⛔ Arduino IDE /dev/ttyUSB0: Permissions Denied"
date: 2023-02-24T14:54:15+03:00
draft: false
tags: [arduino, linux, tools]
---
## Ошибка can't open device "/dev/ttyUSB0": Permission denied
![](/content/images/2023/arduino-perm-denied.png)
Данная ошибка говорит, что у пользователя отсутствуют права для записи в порт.
Для решения проблемы, необходимо добавить пользователя
в группу которой позволено работать с данным портом.
Выяснить название группы можно следующим образом.
В консоли вводим:
```sh
ls -l /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 0 Feb 24 14:44 /dev/ttyUSB0
```
Видим, что файл пренадлежит пользователю `root` и группе `uucp`.
Добавим себя в группу `uucp` можно командой,
где `user` нужно заменить на имя своего пользователя:
```sh
usermod -a -G uucp user
```
После этой операции необходимо перезайти в сеанс,
ну либо перезагрузить компьютер,
для того чтобы изменения учетной записи вступили в силу.
## Используемый материал:
1. [Arduino в Debian. Ошибка can't open device "/dev/ttyUSB0": Permission denied](http://hobbymods.ru/article/mikrokontrolery-arduino/arduino-v-debian-osibka-cant-open-device-devttyusb0-permission-denied) | hobbymods.ru

View File

@ -0,0 +1,66 @@
---
title: "🔴 Индикатор загрузки программы Ardiuno"
date: 2023-02-24T19:06:07+03:00
draft: false
tags: [arduino, tips]
---
Написал простую функцию, которая моргает встроенным светодиодом,
когда ардуинка запускается.
Функцию `init_blink()` необходимо использовать в цикле `setup()`,
потому что в ней используется функция `delay()`,
вызов которой в `loop()` может негативно повлиять на выполнямый код.
```c
void init_blink(int times) {
for (int count = 0; count < times; count++) {
digitalWrite(LED_BUILTIN, HIGH);
delay(200);
digitalWrite(LED_BUILTIN, LOW);
delay(200);
}
}
```
Функция имеет один аргумент `times`, который принимает цисловое значение.
Он отвечает за количество морганий свотодиодом при вызове функции.
Использовать функцию нужно так:
```c
void setup() {
// код инициализации
init_blink(5);
}
```
Светодиод моргает каждые 200 милисекунд.
### Изменить время между зажиганием светодиода
Чтобы изменить время моргания светодиодом, можно изменить значение
в функции `delay()`, а можно сделать это более элегатно, добавив аргумет.
```c
void init_blink(int times, int delay) {
for (int count = 0; count < times; count++) {
digitalWrite(LED_BUILTIN, HIGH);
delay(delay);
digitalWrite(LED_BUILTIN, LOW);
delay(delay);
}
}
```
Использовать функцию так:
```c
void setup() {
// код инициализации
init_blink(5, 200);
}
```