Compare commits
2 Commits
447b9724b8
...
b2751e2d24
Author | SHA1 | Date | |
---|---|---|---|
b2751e2d24 | |||
8c4d253694 |
40
content/posts/2023/arduino/port-permissions-denied.md
Normal file
40
content/posts/2023/arduino/port-permissions-denied.md
Normal 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
|
66
content/posts/2023/arduino/running-indicator.md
Normal file
66
content/posts/2023/arduino/running-indicator.md
Normal 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);
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user