Ошибка компиляции

Вопросы от новичков
Ответить
IgorIv
Рядовой
Сообщения: 14
Зарегистрирован: 17 авг 2018, 14:16
Имя: Игорь

Ошибка компиляции

Сообщение IgorIv »

Здравствуйте.
Создал простейшую схему LAD. Контакт разомкнутый (2) и катушка (4).
После компиляции скетч:

void setup()
{
pinMode(2, INPUT_PULLUP);
pinMode(4, OUTPUT);
digitalWrite(4, 0);



}
void loop()
{






//Плата:1
digitalWrite (4, ((0) &&((digitalRead (2)))));






}

т.е. СОВСЕМ НЕТ ФУНКЦИОНАЛА:
{
// read the state of the pushbutton value
buttonState = digitalRead(2);
// check if pushbutton is pressed. if it is, the
// buttonState is HIGH
if (buttonState == HIGH) {
// turn LED on
digitalWrite(4, HIGH);
} else {
// turn LED off
digitalWrite(4, LOW);
}
delay(10); // Delay a little bit to improve simulation performance
}

Подскажите, что делаю не так? :smile37:
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Ошибка компиляции

Сообщение RedSky »

Всё так как должно быть. Собственно, почему код должен получаться таким как вы привели ниже?
Или
IgorIv писал(а): 19 апр 2020, 23:27 digitalWrite (4, ((0) &&((digitalRead (2)))));
не работает как надо? Ещё и delay зачем-то приплели.
IgorIv
Рядовой
Сообщения: 14
Зарегистрирован: 17 авг 2018, 14:16
Имя: Игорь

Ошибка компиляции

Сообщение IgorIv »

В симуляторе https://www.tinkercad.com/ не работает.
Или этот симулятор не подходит для проверки?
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Ошибка компиляции

Сообщение RedSky »

Завтра проверю в протеусе, но с простой логикой никогда проблем не было.

Отправлено спустя 9 часов 45 минут 28 секунд:
Проверил - работает. Код получился такой
[spoiler]

Код: Выделить всё


void setup()
{
pinMode(2, INPUT_PULLUP); 
pinMode(4, OUTPUT); 
digitalWrite(4, 0); 

}
void loop()
{


//Плата:1
digitalWrite (4, (digitalRead (2)));

}

[/spoiler]
Аватара пользователя
Goosr
Сержант
Сообщения: 184
Зарегистрирован: 07 июн 2016, 08:25
Откуда: Тольятти
Имя: Дмитрий

Ошибка компиляции

Сообщение Goosr »

А вы как управляете Pin2? Я смотрю, у вас вход подтянут к плюсу, следовательно управлять надо минусом.
FLProg 6.3.1 - 7.3.4 - Linux
IgorIv
Рядовой
Сообщения: 14
Зарегистрирован: 17 авг 2018, 14:16
Имя: Игорь

Ошибка компиляции

Сообщение IgorIv »

Спасибо за ответы!
Вижу отличие в двух значках посередине выражения и количество скобок: digitalWrite (4, ((0) &&((digitalRead (2)))));
Это критично?
Насчет плюса и минуса. Как я понимаю релейную LAD при подаче +5 на пин2 получаем +5 на пин4 (относительно grnd)
Аватара пользователя
Goosr
Сержант
Сообщения: 184
Зарегистрирован: 07 июн 2016, 08:25
Откуда: Тольятти
Имя: Дмитрий

Ошибка компиляции

Сообщение Goosr »

IgorIv писал(а): 21 апр 2020, 10:09 Насчет плюса и минуса. Как я понимаю релейную LAD при подаче +5 на пин2 получаем +5 на пин4 (относительно grnd)
LAD или FBD не важно. Для защиты от помех на входе можно включить "Подтягивающий резистор", у вас в схеме включен, таким образом вход подтягивается к +5, контакт в схеме Pin2 будет постоянно включен и как следствие выход Pin4 то-же. Подав на вход минус, Pin2 разомкнется и выход Pin4 то-же. Частая ошибка начинающих, это управлять плюсовым сигналом когда вход подтянут к плюсу.
Если нужно, чтобы выход включался при подаче отрицательного управляющего сигнала, контакт Pin2 нужно сделать нормально закрытым.
FLProg 6.3.1 - 7.3.4 - Linux
IgorIv
Рядовой
Сообщения: 14
Зарегистрирован: 17 авг 2018, 14:16
Имя: Игорь

Ошибка компиляции

Сообщение IgorIv »

Сделал LAD нормально закрытый контакт (пин2) (подтяжкой резистором 10к) на +5 и катушку (состояние при старте откл) (пин4).
Рассчитывал при нажатии на кнопку загорится светодиод. Но не работает (в этом симуляторе).

Компиляция

void setup()
{
pinMode(2, INPUT_PULLUP);
pinMode(4, OUTPUT);
digitalWrite(4, 0);



}
void loop()
{






//Плата:1
digitalWrite (4, ((0) &&((!(digitalRead (2))))));






}
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Ошибка компиляции

Сообщение RedSky »

[ref]IgorIv[/ref], не пойму откуда у вас берётся строка
IgorIv писал(а): 21 апр 2020, 16:10 digitalWrite (4, ((0) &&((!(digitalRead (2))))));
Должно быть

Код: Выделить всё

digitalWrite (4, (!(digitalRead (2))));
[spoiler]
Безымянный.png
[/spoiler]
А так у вас выход всегда будет выключен (условие И с нулём).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
IgorIv
Рядовой
Сообщения: 14
Зарегистрирован: 17 авг 2018, 14:16
Имя: Игорь

Ошибка компиляции

Сообщение IgorIv »

Да, это странно. Комп W7\64
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

Ошибка компиляции

Сообщение RedSky »

Вообще то левую часть контакта тоже подключать надо (см. рисунок выше).
IgorIv
Рядовой
Сообщения: 14
Зарегистрирован: 17 авг 2018, 14:16
Имя: Игорь

Ошибка компиляции

Сообщение IgorIv »

Отлично! Спасибо за подсказку!
Скетч выправился.
Симуляция не работает. Может я не так понял принцип работы контактов-катушек и монтаж неправильный?


void setup()
{
pinMode(2, INPUT_PULLUP);
pinMode(4, OUTPUT);
digitalWrite(4, 0);



}
void loop()
{






//Плата:1
digitalWrite (4, (digitalRead (2)));






}
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

Ошибка компиляции

Сообщение support »

Ну во первых у Вас включён подтягивающий резистор на входе. Потому резистор в цепи кнопки не нужен. Достаточно замыкать кнопкой вход на GND. А вот резистор на светодиод всё таки нужно поставить (500 ом - 1 Ком в зависимости от диода). Ну и проверить полярность подключения светодиода.
Автор программы FLProg.
IgorIv
Рядовой
Сообщения: 14
Зарегистрирован: 17 авг 2018, 14:16
Имя: Игорь

Ошибка компиляции

Сообщение IgorIv »

Всем СПАСИБО! Все работает!
На выходе будет катушка реле. Что для нее посоветуете?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

Ошибка компиляции

Сообщение support »

IgorIv писал(а): 21 апр 2020, 18:03 На выходе будет катушка реле. Что для нее посоветуете?
Посоветую готовый модуль реле для ардуино. Там уже и транзистор стоит, и чаще всего опторазвязка.
Автор программы FLProg.
Ответить

Вернуться в «Начинающим»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость