Подсветка картины

Александр134
Offline
Зарегистрирован: 18.03.2016

Нужен скетч под датчик движения,который плавно мосфетом включает и выключает светодиодную ленту

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013
/*
Исходное ТЗ: 
 Датчик движения,который плавно мосфетом включает и выключает светодиодную ленту
 */

#define LED_PIN     9    // пин для подключения MOSFET (любой из 9, 10, 11)
#define MOTION_PIN  2    // пин для подключения к выходу "Out" датчика движения
#define SPEED       32   // скорость изменения яркости, от 5 до 100
#define TIMEOUT     30   // интервал выключения подсветки при отсутствии движения, сек

/*
 Схема подключения датчика движения: 
 learningaboutelectronics.com/images/Arduino-motion-sensor-circuit.png
 Схема подключения подсветки:
 pighixxx.com/test/portfolio-items/connect-a-mosfet/?portfolioID=610
 */

#define MOTION_DETECTED (digitalRead(MOTION_PIN)) // макрос для удобства чтения скетча

void setup()  
{ 
  pinMode(LED_BUILTIN, OUTPUT);
} 


void loop()  
{ 
  if(MOTION_DETECTED)                 // обнаружено движение
  {
    digitalWrite(LED_BUILTIN, HIGH);  // врубаем встроенный индикатор  
    for(byte i = 0; i <= 255; i++)    // плавно включаем
    {  
      analogWrite(LED_PIN, i);
      delay(SPEED);
    }
  }

  delay(TIMEOUT * 1000);              // тупим N секунд, чтобы насладиться картиной

  while(MOTION_DETECTED);             // пока есть движение, ничего не делаем

  for(byte i = 255; i > 0; i--)       // плавно выключаем
  {  
    analogWrite(LED_PIN, i);
    delay(SPEED);
  }    
  digitalWrite(LED_BUILTIN, LOW);    // вырубаем встроенный индикатор 
}

 

С тебя 600 р. на мобильный или карту Сбербанка.

Green
Offline
Зарегистрирован: 01.10.2015

И мне 100-ку за bugfix.

    for(byte i = 0; i < 255; i++)    // плавно включаем

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

в твоем варианте i закончится на 254, т.е. в конце цикла будет постоянный ШИМ, что будет греть MOSFET.

Тогда уж так:

for(byte i = 0; i < 255; ++i)

 

Green
Offline
Зарегистрирован: 01.10.2015

Ну извини. Только твой цикл не закончится никогда.
Или for(byte i = 1; i; i++) // плавно включаем
или через do while. Ага?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

ага :)

Александр134
Offline
Зарегистрирован: 18.03.2016

Огромное благодарю!Сейчас опробую!Денюшку на карту,скинь номерю

Александр134
Offline
Зарегистрирован: 18.03.2016

Друг,скетч не компилируется!

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

у меня все компилируется и грузится в Uno и ProMini. Какие ошибки пишет?

Александр134
Offline
Зарегистрирован: 18.03.2016

Не компелируется!

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

приведите скриншот или сообщения об ошибках (оранжевые цветом в консоли IDE).

Александр134
Offline
Зарегистрирован: 18.03.2016

Без ардуинки,просто ввожу в программу скетч и компилирую,а она выдаёт кучу разного всего,но самое главное-пишет,что бы достичь дзен,нужно курить html!

Александр134
Offline
Зарегистрирован: 18.03.2016
Arduino: 1.6.8 (Windows 8.1), Плата:"Arduino Nano, ATmega328"
 
C:\Users\Александр\Documents\Arduino\sketch_mar18b\sketch_mar18b.ino: In function 'void setup()':
 
sketch_mar18b:48: error: redefinition of 'void setup()'
 
sketch_mar18b:20: error: 'void setup()' previously defined here
 
C:\Users\Александр\Documents\Arduino\sketch_mar18b\sketch_mar18b.ino: In function 'void loop()':
 
sketch_mar18b:53: error: redefinition of 'void loop()'
 
sketch_mar18b:26: error: 'void loop()' previously defined here
 
exit status 1
redefinition of 'void setup()'
 
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
 
Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

у тебя дважды в скетче повторяется void setup() и void loop().

В моем коде такого нет.

__Alexander
Offline
Зарегистрирован: 24.10.2012

так те setup и void что по умолчанию создаются надо же удлить.

Александр134
Offline
Зарегистрирован: 18.03.2016

Можете не поверить,но убрав двойные значения,компеляция прошла успешно!Возникла трудность с загрузкой! Arduino: 1.6.8 (Windows 8.1), Плата:"Arduino Nano, ATmega328"

 
Скетч использует 1 442 байт (4%) памяти устройства. Всего доступно 30 720 байт.
Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2 039 байт для локальных переменных. Максимум: 2 048 байт.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xbb
Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xbb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xbb
 
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
 

 

Александр134
Offline
Зарегистрирован: 18.03.2016

Благодарю!Меня да же чайником не назовёшь!

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Какая плата Arduino? Какой номер COM-порта используется?

Александр134
Offline
Зарегистрирован: 18.03.2016

Nano 3.0        COM-1

Александр134
Offline
Зарегистрирован: 18.03.2016

Переключил на COM-4 и загрузка завершена!Сейчас проверю в действии

Александр134
Offline
Зарегистрирован: 18.03.2016

Рагорается плавно,доходит до полного накала и резко затухает,но не до конца и снова разгорается!Не бросайте меня,помогите!

Green
Offline
Зарегистрирован: 01.10.2015

А вот здесь уже без моего bugfix никак!

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

ага, строка 31 должна быть такая:

for(byte i = 0; i < 255; ++i)

 

Green
Offline
Зарегистрирован: 01.10.2015

Не, это не моё.))

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

да, так опять 254 получается.

Ладно, перестаем жмотиться и пишем:

for(int i = 0; i <= 255; i++)
for(int i = 255; i >= 0; i--)

Так железно работает.

Green
Offline
Зарегистрирован: 01.10.2015

Green пишет:

Не, это не моё.))

Извини, погорячился.))

Александр134
Offline
Зарегистрирован: 18.03.2016

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

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Датчик при срабатывании выдает "1" или "0"?

Этот код у меня на макетке работает:

/*
  Исходное ТЗ:
  Датчик движения,который плавно мосфетом включает и выключает светодиодную ленту
*/

#define LED_PIN     9    // пин для подключения MOSFET (любой из 9, 10, 11)
#define MOTION_PIN  2    // пин для подключения к выходу "Out" датчика движения
#define SPEED       16   // скорость изменения яркости, от 5 до 100
#define TIMEOUT     10   // интервал выключения подсветки при отсутствии движения, сек

/*
  Схема подключения датчика движения:
  learningaboutelectronics.com/images/Arduino-motion-sensor-circuit.png
  Схема подключения подсветки:
  pighixxx.com/test/portfolio-items/connect-a-mosfet/?portfolioID=610
*/

#define MOTION_DETECTED (digitalRead(MOTION_PIN)) // макрос для удобства чтения скетча

void setup()
{
  Serial.begin(9600);
  pinMode(MOTION_PIN, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
}


void loop()
{
  if (MOTION_DETECTED)                // обнаружено движение
  {
    Serial.println("On");
    digitalWrite(LED_BUILTIN, HIGH);  // врубаем встроенный индикатор
    for (int i = 0; i <= 255; i++)   // плавно включаем
    {
      analogWrite(LED_PIN, i);
      delay(SPEED);
    }

    //delay(TIMEOUT * 1000);              // тупим N секунд, чтобы насладиться картиной

    while (MOTION_DETECTED);            // пока есть движение, ничего не делаем
    
    Serial.println("Off");
    for (int i = 255; i >= 0; i--)      // плавно выключаем
    {
      analogWrite(LED_PIN, i);
      delay(SPEED);
    }
    digitalWrite(LED_BUILTIN, LOW);    // вырубаем встроенный индикатор
  }
}

 

Александр134
Offline
Зарегистрирован: 18.03.2016
Arduino: 1.6.8 (Windows 8.1), Плата:"Arduino Nano, ATmega328"
 
C:\Users\Елена\Documents\Arduino\sketch_mar17a\sketch_mar17a.ino: In function 'void loop()':
 
sketch_mar17a:53: error: expected primary-expression before ')' token
 
sketch_mar17a:53: error: expected ';' before ')' token
 
sketch_mar17a:53: error: expected '}' at end of input
 
exit status 1
expected primary-expression before ')' token
 
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Не компелирует!
Александр134
Offline
Зарегистрирован: 18.03.2016

Я взял последний скетч!Если есть возможность,то я бы приобрёл готовое изделие-Москва.Есть перспектива на дальнейшее сотрудничество,этот скетч пробный-начало!В дальнейшем потребуется прописать датчик расстояния,потом эмбилайт.3D картира,настоящий скетч в рекламных целях,дальше развитие! Ludmila7716@yandex.ru

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Александр134 ,   этиошибки из какогой версии код?
....удобнее так - крайний код , крайняя схема , крайние ошибки
чё по постам скакать-то и уточнять кто и что имел ввиду ?

...на скобки он ругается , начинай вникать уже :)

давай код , давай ошибки - всё Свернуть !

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Александр134 пишет:

Я взял последний скетч!Если есть возможность,то я бы приобрёл готовое изделие-Москва.Есть перспектива на дальнейшее сотрудничество,этот скетч пробный-начало!В дальнейшем потребуется прописать датчик расстояния,потом эмбилайт.3D картира,настоящий скетч в рекламных целях,дальше развитие! Ludmila7716@yandex.ru

это - к Tomasina

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

tomasina+arduino@gmail.com

Александр134
Offline
Зарегистрирован: 18.03.2016

Сгорела ардуинка,сейчас еду покупать,какую лучше взять?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

ProMini в удвоенном количестве (чтобы третий раз не ездить).

Относись к ним как к расходному материалу.

Александр134
Offline
Зарегистрирован: 18.03.2016

Благодарю!

Александр134
Offline
Зарегистрирован: 18.03.2016

А распиновка та же остаётся?

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

та же. По сравнению с Arduino Uno отличается только размерами платы.

Александр134
Offline
Зарегистрирован: 18.03.2016

День добрый!Вот купил адаптер под USB пытаюсь залить помогите пожалуйста ведь там перемычку нужно переставлять!

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

что за перемычка? Если адаптер имеет вывод DTR (шестивыводной), то ничего не нужно, все реализовано аппаратно; если он четырехвыводной, то при загрузке надо держать reset и вовремя отпустить его.

Upd. Перемычка (переключатель) может регулировать напряжение - либо 3,3 В, либо 5 В. Для ProMini непринципиально, она не сгорит в любом варианте.

Александр134
Offline
Зарегистрирован: 18.03.2016

Дмитрий,помогите подллючить FTDI232 к искра мини

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Вы же вроде успешно все подкючили  и залили скетч?

На адаптере пин Reset может быть обозначен как DTR.

Александр134
Offline
Зарегистрирован: 18.03.2016

Да, всё прошло успешно!Но это был адаптор FTDI 232 иАдуино про мини 328,только её спалили,теперь этим же адаптором не получается загрузить искра мини

DenKov
DenKov аватар
Offline
Зарегистрирован: 16.04.2016

Если нужна ещё помощь обращайтесь! Пишете на почту denkov0110@yandex.ru помогу не дорого