Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

by_ruslan
2018-10-24 15:28:24

а разве так возможно?
analogWrite(A1, 250);
разве на аналоговый порт можно записать?

Extryng
2018-10-18 22:56:45

Большое спасибо, за код lkj - красиво написано !

Буду учиться smile

lkj
2018-10-18 19:46:07
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);
}
Extryng
2018-10-17 22:28:45

Спасибо - учусь wink

Если в:   else (x > 500)
Убрать точку с запятой, программа - выдает ошибку.

Хотя по инструкции там она не нужна, сам удивился. И заметил, что проскакивает на выход: 2, A1 какое-то незначительный напряжение.

In function 'void loop()':
26:3: error: expected ';' before '{' token
42:1: error: expected '}' at end of input

Green
2018-10-17 13:38:47

else (x > 500);
Сначала код научитесь правильно вставлять!

Extryng
2018-10-17 12:57:02

Спасибо большое, за подсказку.
Уже работает (исправленный код - прикрепил).

smile




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);

}

Вячеслав Азаров
2018-10-17 06:51:30

Потому, что вы их только включаете и нигде, в вашей программке, не отключаете. Кстати, в реальности к порту микроконтроллера двигатель, напрямую, подключать нельзя - сгорит.

Extryng
2018-10-16 22:55:31

Screenshot_20181016-2210122.pngЗдравствуйте, только начал изучать 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);
}

Підвал форуму