Ви не увійшли.
Здравствуйте, только начал изучать arduino (с помощью Tinkencad). И уже запутался в нескольких строках кода.
Задание:
1) При значении потенциометра <500: мигает красный светодиод.
2) При значении потенциометра >500: светит зеленый светодиодные и работает двигатель.
Что не работает:
- Когда значение потенциометра возвращается в значение <500, не отключаются выхода: 2 и А1
Подскажите пожалуйста, в чем дело. Спасибо.
void setup()
{
Serial.begin(9600);
pinMode(A5, INPUT);
pinMode(4, OUTPUT);
pinMode(2, OUTPUT);
pinMode(A1, OUTPUT);
}
void loop()
{
int x = analogRead(A5);
if (x < 500)
{
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(1000);
}
else
{
digitalWrite(2, HIGH);
analogWrite(A1, 250);
}
Serial.println(x);
delay(1000);
}
Остання редакція Extryng (2018-10-16 23:18:12)
Неактивний
Потому, что вы их только включаете и нигде, в вашей программке, не отключаете. Кстати, в реальности к порту микроконтроллера двигатель, напрямую, подключать нельзя - сгорит.
Неактивний
Спасибо большое, за подсказку.
Уже работает (исправленный код - прикрепил).
void setup()
{
Serial.begin(9600);
pinMode(A5, INPUT);
pinMode(4, OUTPUT);
pinMode(2, OUTPUT);
pinMode(A1, OUTPUT);
}
void loop()
{
int x = analogRead(A5);
if (x < 500)
{
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(4, LOW);
delay(1000);
}
else (x > 500);
{
digitalWrite(2, HIGH);
analogWrite(A1, 250);
if (x < 500)
{
digitalWrite(2, LOW);
analogWrite(A1, 0);
}
}
Serial.println(x);
delay(1000);
}
Остання редакція Extryng (2018-10-18 22:51:46)
Неактивний
Спасибо - учусь
Если в: else (x > 500)
Убрать точку с запятой, программа - выдает ошибку.
Хотя по инструкции там она не нужна, сам удивился. И заметил, что проскакивает на выход: 2, A1 какое-то незначительный напряжение.
In function 'void loop()':
26:3: error: expected ';' before '{' token
42:1: error: expected '}' at end of input
Остання редакція Extryng (2018-10-18 22:52:35)
Неактивний
const uint8_t LEDGREEN = 2;
const uint8_t LEDRED = 4;
const uint8_t MOTOR = A1;
const uint8_t POTLIN = A5;
const uint16_t DELAY = 1000;
const uint16_t VALUEPOT = 500;
const uint16_t VALUEMOTOR = 250;
void setup() {
Serial.begin(9600);
pinMode(POTLIN, INPUT);
pinMode(MOTOR, OUTPUT);
pinMode(LEDGREEN, OUTPUT);
pinMode(LEDRED, OUTPUT);
}
void loop() {
uint16_t x = analogRead(POTLIN);
if (VALUEPOT < x) {
digitalWrite(LEDGREEN, LOW);
analogWrite(MOTOR, LOW);
digitalWrite(LEDRED, HIGH);
delay(DELAY);
digitalWrite(LEDRED, LOW);
delay(DELAY);
} else {
digitalWrite(LEDGREEN, HIGH);
analogWrite(MOTOR, VALUEMOTOR);
}
Serial.println(x);
delay(1000);
}
Неактивний