#1 2019-03-22 18:16:40

СТЕПАН245166
Учасник
Зареєстрований: 2019-03-22
Повідомлень: 2

Помогите написать код

Светодиоды должны гореть по очереди.
С помощью потенциометра нужно реализовать изменение скорости движения огонька.
int analogPinpot = 0;
int led1 = 8; 
int led2 = 9; 
int led3 = 10;
int val = 0; // переменная для хранения значения


void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}

void loop()
{
  digitalWrite(8, HIGH);
  delay(1000);
  digitalWrite(8, LOW);
  delay(1000);
  digitalWrite(9, HIGH);
  delay(1000);
  digitalWrite(9, LOW);
  delay(1000);
  digitalWrite(10, HIGH);
  delay(1000);
  digitalWrite(10, LOW);
  delay(1000);
 
   val = analogRead(analogPin);// считывает значение с порта, подключенному к потенциометру

}

https://www.tinkercad.com/things/8bbzbSzRBfY

Неактивний

#2 2019-03-22 18:59:59

г0сть
Гість

Re: Помогите написать код

delay(val);

#3 2019-03-22 19:12:28

qwone
Учасник
Зареєстрований: 2016-07-25
Повідомлень: 143

Re: Помогите написать код

/**/
const byte Rpin =/*пин*/A0;
const byte Led1Pin =/*пин*/8;
const byte Led2Pin =/*пин*/9;
const byte Led3Pin =/*пин*/10;
const byte st1 = 0; // горит 1-й
const byte st2 = 1; // горит 2-й
const byte st3 = 2; // горит 3-й
byte state;
unsigned long past,time;
void set(byte s) {
  state = s;
  time=analogRead(Rpin)+100;
  past = millis();
  switch (s) {
    case st1:
      digitalWrite(Led1Pin, HIGH);
      digitalWrite(Led2Pin, LOW);
      digitalWrite(Led3Pin, LOW);
      break;
    case st2:
      digitalWrite(Led1Pin, LOW);
      digitalWrite(Led2Pin, HIGH);
      digitalWrite(Led3Pin, LOW);
      break;
    case st3:
      digitalWrite(Led1Pin, LOW);
      digitalWrite(Led2Pin, LOW);
      digitalWrite(Led3Pin, HIGH);
      break;
  }
}
void _init() {
  pinMode(Led1Pin, OUTPUT);
  pinMode(Led2Pin, OUTPUT);
  pinMode(Led3Pin, OUTPUT);
  set(st1);
}
void _run() {
  if (state == st1 && millis() - past >= time) set(st2);
  if (state == st2 && millis() - past >= time) set(st3);
  if (state == st3 && millis() - past >= time) set(st1);
}
//-----------main------------------------
void setup() {
  _init();
}
void loop() {
  _run();
}
/**/

Неактивний

#4 2019-03-22 19:21:22

СТЕПАН245166
Учасник
Зареєстрований: 2019-03-22
Повідомлень: 2

Re: Помогите написать код

спасибо

Неактивний

Швидке повідомлення

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

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