Помогите разобраться, rgb контроллер.

алексей74
Offline
Зарегистрирован: 08.02.2017

Помогите разобраться в проблеме, собираю контроллер для RGB ленты на ардуино нано по этой схемме (http://fornk.ru/665-kontroller-dlya-upravleniya-rgb-svetodiodnoj-lentoj-na-mikrokontrollere-pic12f629/ )

, но возникла проблема. 

 

алексей74
Offline
Зарегистрирован: 08.02.2017

каждый канал по отдельности работает и регулируется без проблем,

два канала одновременно работают. но не стабильно,

три канала вместе. только белый, и не регулируется.

Megawollt
Offline
Зарегистрирован: 06.12.2015

Скетч?

алексей74
Offline
Зарегистрирован: 08.02.2017
01#include <SoftwareSerial.h>
02 
03SoftwareSerial BLU(0,1);
04 
05#define redPin 5
06#define greenPin 6
07#define bluePin 9
08#define COMMON_ANODE
09 
10void setup()
11{
12  //Serial setup
13  Serial.begin(9600);
14  Serial.println("-= HC-05 Bluetooth RGB LED =-");
15  BLU.begin(9600);
16  BLU.println("-= HC-05 Bluetooth RGB LED =-");
17  
18  pinMode(4, OUTPUT);
19  pinMode(redPin, OUTPUT);
20  pinMode(greenPin, OUTPUT);
21  pinMode(bluePin, OUTPUT);
22  digitalWrite(4,HIGH);
23 
24setColor(255, 0, 0); // красный
25delay(500);
26setColor(0, 255, 0); // зеленый
27delay(500);
28setColor(0, 0, 255); // синий
29delay(500);
30setColor(255, 255, 0); // желтый
31delay(500);
32setColor(255, 0, 255); // фиолетовый
33delay(500);
34setColor(0, 255, 255); // аквамарин
35delay(500);
36setColor(255, 255, 255); // белый
37delay(500);
38     
39}
40 
41void loop()
42{
43  while (BLU.available() > 0)
44  {
45    int redInt = BLU.parseInt();
46    int greenInt = BLU.parseInt();
47    int blueInt = BLU.parseInt();
48     
49     
50    redInt = constrain(redInt, 0, 255);
51    greenInt = constrain(greenInt, 0, 255);
52    blueInt = constrain(blueInt, 0, 255);
53 
54    if (BLU.available() > 0)
55    {
56      setColor(redInt, greenInt, blueInt);
57 
58      Serial.print("Red: ");
59      Serial.print(redInt);
60      Serial.print(" Green: ");
61      Serial.print(greenInt);
62      Serial.print(" Blue: ");
63      Serial.print(blueInt);
64      Serial.println();
65 
66      BLU.flush();
67    }
68  }
69}
70 
71void setColor(int red, int green, int blue)
72{
73  #ifdef COMMON_ANODE
74red = 255 - red;
75green = 255 - green;
76blue = 255 - blue;
77#endif
78 
79  analogWrite(redPin, red);
80  analogWrite(greenPin, green);
81  analogWrite(bluePin, blue);
82}

 

алексей74
Offline
Зарегистрирован: 08.02.2017

добавил в скетч сторки

01setColor(25, 100, 10); //
02delay(500);
03setColor(100, 55,50); //
04delay(500);
05setColor(75, 90, 255); //
06delay(500);
07setColor(35, 255, 60); //
08delay(500);
09setColor(255, 30, 255); //
10delay(500);
11setColor(40, 55, 75); //
12delay(500);
13setColor(5, 25, 25); //
14delay(500);

цвет завис!?  

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

а питаем мы все это дело от .. ?

алексей74
Offline
Зарегистрирован: 08.02.2017

запитано все это от 12вольт  компьютерного БП. 

HC-06 к выводам D0 D1  и питается от ардуины 3.3в

 

запустил скетч без БТ, вроде цвета меняются 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Зачем БТ питается от 3.3 в ?

какой иммено HC-05 у вас ?

алексей74
Offline
Зарегистрирован: 08.02.2017

ну, даже не знаю как ответить, по даташиту HC-6 питается от 3.3вольт (если я не ошибаюсь) ну я и взял эти 3.3 с ардуины (нано)

 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Это да, только если он стоит на китайской плате, типа такой

то там уже есть, стабилизатор 3.3 в, и не факт что от входных 3.3 вольта он будет работать коррекно.

алексей74
Offline
Зарегистрирован: 08.02.2017

ок, попробую запитать бт от внешних 3.3в (от того же бп) может чего изменится.

насколько допустимо подать дополнительные 3.3в от того же бп, на пин 3.3 ардуины? ничего не погорит?

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

ище раз, какой у вас HC-06, голый или установленный на плату.

сам HC-06, на фото выше, зеленый, сидит на синей плате, в этом случае надо 5в.

алексей74
Offline
Зарегистрирован: 08.02.2017

"голый" 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

тогда это не поможет, потребление у него 20 мА, в спячке 4-5.

но попробуйте...

скеч щас ваш, компильну, посмотрим, мне кажется дело не в железе.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

что прилетает по БТ, пример строки дайте.

алексей74
Offline
Зарегистрирован: 08.02.2017

в данный момент, залил скетч без БТ, просто несколько цветов, пока работает.

возможно из-за tx rx, на пинах 1,0 ???

алексей74
Offline
Зарегистрирован: 08.02.2017

выдавало строки типа red:225,green:46,blue:207 

номера цветов совпадали.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

а мне показалось что проблема в другом, что вы ожидаете от команды

??

алексей74
Offline
Зарегистрирован: 08.02.2017

этот скетч писал не я, нашел в готовом виде и подогнал под "свои" пины. как я понимаю это очистка буфера http://arduino.ru/Reference/Serial/Flush

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Во поэтому лучше читать оригинал

https://www.arduino.cc/en/Serial/Flush

Это до версии 1.0, да отчистка и входящего и исходящего буферов  (я думаю у вас версия IDE посвежее)

а сейчас это ожидание отправки из исходящего буфера.

чистить входящий можно так

1while (BLU.available()) BLU.read();

и да зачем вы повесили SoftwareSerial на пины на которм сидит "железный" сериал ардуины ?

 

алексей74
Offline
Зарегистрирован: 08.02.2017

заменил строку, теперь скетч заработал!!! но только когда ардуина подключена к пк(по usb). без подключения не работает.

алексей74
Offline
Зарегистрирован: 08.02.2017

ну как, зачем, сначала делаем потом думаем )

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

А что не работает то ? Вывод в Serial , так и не должен, или еще что то ?

Фотку того как все это подключено можно увидеть ?

алексей74
Offline
Зарегистрирован: 08.02.2017

сейчас попробую фото скинуть, пытался загрузить, но с не нашел как загрузить с пк.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

алексей74
Offline
Зарегистрирован: 08.02.2017

 по другому вставить фото не получается. 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

алексей74 пишет:

 по другому вставить фото не получается. 

не видно

алексей74
Offline
Зарегистрирован: 08.02.2017

https://drive.google.com/file/d/0B7bjlF5HsDYLZ3NIMHZuZUdreDg/view?usp=sharing

https://drive.google.com/file/d/0B7bjlF5HsDYLcDJBdWU3N0RscG8/view?usp=sharing

https://drive.google.com/file/d/0B7bjlF5HsDYLYVVyZnNfcjFWYjQ/view?usp=sharing

https://drive.google.com/file/d/0B7bjlF5HsDYLcGpDVFdFTjVYNVU/view?usp=sharing

я нажимал открыть в отдельной вкладке, вроде открывалось.

а указанным способом не удается загрузить, пишет типа ошибка загрузки.

 

пока ардуина подключена по кабелю к пк, все работает. после отключения кабеля ничего не работает, цвет не изменяется и т д

алексей74
Offline
Зарегистрирован: 08.02.2017

обнаружиась проблема с БТ ардуина никак не хочет принимать данные. в монитор порта. соответственно тоже ничего кроме "приветствия" не выдает. Пробовал разные БТ модули (все модули рабочие) ничего не меняется. Повесил БТ на другие (10,11) пины, ничего не меняется.

Подскажите, что еще можно проверить\изменить?

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Сделал макетку, проверил все работает. Снял видос, за звук извиняйте, переснимать неохото..

https://www.youtube.com/watch?v=1ps_SCJe2qI

 

алексей74
Offline
Зарегистрирован: 08.02.2017

видимо у меня в ардуине, чего-то накрылось. нужно на другой проверить.

Заменил ардуину, все заработало.