Помогите чайнику со скетчем

Wiring, Processing, библиотеки

Помогите чайнику со скетчем

Сообщение Maxsimus » 16 май 2015, 06:39

Задача довольно простая для опытных в этом деле, нужно сделать для школы выбор билета, на ардуино нано то есть есть сам МК 8 светодиодов и кнопка, нужно что бы после нажатия кнопки побежал бегущий огонь несколько секунд затем остановился на случайной позиции посветил несколько секунд и потух и так после каждого нажатия кнопки
Maxsimus
 
Сообщения: 3
Зарегистрирован: 16 май 2015, 06:30
programming: C++

Re: Помогите чайнику со скетчем

Сообщение noonv » 18 май 2015, 11:34

Задача простая не только для опытных ;) Где конкретно у вас возникли сложности?
Аватара пользователя
noonv
Администратор
 
Сообщения: 553
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Помогите чайнику со скетчем

Сообщение Maxsimus » 18 май 2015, 14:43

Со скетчем на бегущий огонь я вроде разобрался, а вот с генератором случайных ответов вообще беда, в нем вообще ни чего не понятно ни куда его вставлять не куда он выведет результат :du_ma_et:
нашёл вот такой скетч:
Код: Выделить всё
int timedelay=100;  //задержка между огнями
int cycles=4;      //количество циклов выполнения каждого алгоритма
int lnumber=8;     //количество светодиодов
int i,j;           //переменные циклов
int programsNumber=0;        //флаг подпрограммы


void setup(){

        for (i=0;i<=lnumber;i++)
        {
          //определяем какие порты будут у нас рабочими, к примеру для 8 светодиодов: 0-7
          pinMode(i,OUTPUT);
        }
}


void loop(){ // основной цикл работы устройства
      switch (programsNumber)
      {
        case 0:
        {
                         
                //бегущий огонь в прямом направлении
                for (j=1;j<=cycles;j++)
                {//сначала в одну сторону
                      for (i=0;i<=lnumber;i++)
                      {
                            digitalWrite(i,HIGH);//включили лампу
                            delay(timedelay);    //подождали
                            digitalWrite(i,LOW); //выключили лампу
                      }
                      //потом в другую
                      for (i=lnumber+1;i>0;i--)
                      {
                            digitalWrite(i-1,HIGH);//включили лампу
                            delay(timedelay);      //подождали
                            digitalWrite(i-1,LOW); //выключили лампу
                      }
                }
               
               programsNumber++; //переходим к следующему эффекту
        }
        break;
       
      case 1:
      {
        //случайная лампа
       
        for (j=0;j<=cycles;j++)
            {
                int rndlamp=random(lnumber+1); //случайный номер светодиода
                digitalWrite(rndlamp,HIGH);    //включили светодиод
                delay(timedelay);              //задержка
                digitalWrite(rndlamp,LOW);     //выключили
            }
        programsNumber++;                      //переходим к следующему эффекту
        }
        break;
 }       
}

здесь вроде загораются случайно светодиоды но одни и те же и быстро тухнут
Maxsimus
 
Сообщения: 3
Зарегистрирован: 16 май 2015, 06:30
programming: C++

Re: Помогите чайнику со скетчем

Сообщение Maxsimus » 18 май 2015, 14:45

и не понятно как назначить свои выводы d2-d9 и сделать что бы загорался только один светодиод секунд на 10
Maxsimus
 
Сообщения: 3
Зарегистрирован: 16 май 2015, 06:30
programming: C++

Re: Помогите чайнику со скетчем

Сообщение noonv » 18 май 2015, 16:25

чтобы со 2-го по 9-й - нужно переписать циклы и заменить 0 на 2
было:
Код: Выделить всё
for (i=0;i<=lnumber;i++)

стало:
Код: Выделить всё
for (i=2;i<=lnumber;i++)


а случайный светодиод - генерируете случайное число от 0 до 8

Код: Выделить всё
int rndlamp=random(lnumber+1); //случайный номер светодиода
digitalWrite(rndlamp+2,HIGH);    //включили светодиод
delay(10*1000);              //задержка - 10 сек
digitalWrite(rndlamp+2,LOW);     //выключили


про кнопку - Практическое программирование Arduino/CraftDuino - цифровой ввод - кнопка
Аватара пользователя
noonv
Администратор
 
Сообщения: 553
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++


Вернуться в Программирование

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

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

cron
© 2009-2017 |  О проекте  |  Политика Конфиденциальности  |