#1 Re: Апаратні питання » Как лучше припаять резистор к кнопке? » 2018-02-07 18:00:41

А что не так с моей темой? smile нормально все ))) Короче в итоге остановился на обычной плате и спаял все проводами.

#3 Re: Апаратні питання » Как лучше припаять резистор к кнопке? » 2018-02-05 14:11:56

фиг пойми где там искать нужную мне информацию. Я итак уже кучу раз пробовал гуглить как припаять резистор к кнопке и так далее. значит буду пробовать просто спаять как то так провода к резистору.. куда то приклеить это дело чтоб не развалилось и буду пробовать как пашет.

#4 Re: Апаратні питання » Как лучше припаять резистор к кнопке? » 2018-02-05 13:55:33

Вячеслав Азаров пише:

Резистор припаять лучше возле платы, и конденсатор параллельно кнопке желательно. А кнопку вынести бифилярной линией. Так же, не помешает ESD защита, на входе контроллера.

А зачем конденсатор? Я так понимаю что нужна таки будет макетная плата. Чтобы на ней припаять резистор, минус и контакт от ардуинки. и уже от платы проводами удалять кнопку.

ПРосто пытаюсь понять есть варианты как обойтись без макетной платы? Может есть способы какие то?

#5 Апаратні питання » Как лучше припаять резистор к кнопке? » 2018-02-05 00:41:54

Blaze
відповідей: 8

Добрый вечер. Решил в итоге делать свой проект с обычной тактовой кнопкой и столкнулся с вопросом, а как лучше припаять резистор если мне нужно чтоб кнопка была подальше от платы Arduino? Если можно с примерами.

#6 Re: Апаратні питання » Разные сигналы с ИК пульта с одной кнопки » 2018-02-05 00:16:46

Целый день искал ответ на свой вопрос.. И вот наконецто нашел.

The timing protocol for WS2812 leds requires disabling interrupts while writing out led data, and the IR library relies on interrupts to read the IR data, which means that if you're using the remote while the library is writing out led data, then it is going to miss part of the ir signal and misinterpret it.

There isn't really any way around this - switch to 4-wire leds (like the APA102 (adafruit sells them as Dotstars) or the LPD8806 or WS2801) or, alternatively, use the teensy 3/3.1 as your controller, where I have a solution that allows interrupts to run, even while using WS2812 leds.


Судя по всему это аппаратно не совсем возможно. sad Мои диоды типа WS2812 не работают с IR приемником. А я так надеялся sad

#7 Re: Апаратні питання » Разные сигналы с ИК пульта с одной кнопки » 2018-02-04 23:55:59

подключил светодиодную ленту от другого юсб. В ардуионо остался только провод контроллера. И все равно с работающей лентой код постоянно не правильный.

#8 Re: Апаратні питання » Разные сигналы с ИК пульта с одной кнопки » 2018-02-04 23:09:09

У программы забавное поведение. Вот моя программа.

#include <Adafruit_NeoPixel.h>
#include <IRremote.h>
#define PIN 11
int Leds = 160;

int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;

// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(Leds, PIN, NEO_RGBW + NEO_KHZ800);

unsigned long previousMillis = 0;
unsigned long currentMillis = 0;
int mode = 1;

int fade_g = 0;
int fade_r = 0;
int fade_b = 255;
int dir_g = 1;
int dir_r = 1;
int dir_b = 1;

int color[] = {0, 0, 0, 0};



void recievesignal() {

  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
//    if (results.value == 0xFF1AE5 or results.value == 0xFF9A65 or results.value == 0xFFA25D or results.value == 0xFF02FD)
//      mode = results.value;
  }
}

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  strip.begin();
  strip.show();
  irrecv.enableIRIn(); // Start the receiver
  attachInterrupt (0, recievesignal, CHANGE);
}

void loop() {
//calmmode(); // светодиоды медленно меняют яркость от большего к меньшему и наоборот

  //Serial.println(results.value, HEX);
//  switch (mode) {
//    case 0xFF1AE5:
//      calmmode();
//      break;
//    case 0xFF9A65:
//      thunderburst();
//      break;
//    case 0xFFA25D:
//      colour_fade();
//      break;
//    case 0xFF02FD:
//      reset();
//      break;
//  }

}

Конечно я не добавлял сами режимы светодиодов, они работают нормально. В данном виде программа работает отлично и коды считываются шикарно. НО больше ничего не происходит. Если просто включить режим свечения calmmode(); то код приходит не правильный именно в моменты когда свет становится ярким.

И второй вариант если в цикле loop ничего не добавлять но раскомментировать две строки:
//    if (results.value == 0xFF1AE5 or results.value == 0xFF9A65 or results.value == 0xFFA25D or results.value == 0xFF02FD)
//      mode = results.value;

То с этими строками коды считываются опять очень очень плохо.
Как можно уловить помехи от светодиодов? Это от напряжения подаваемого на ленту? Питание идет от 5В и на светодиоды и на приемник.

#9 Апаратні питання » Разные сигналы с ИК пульта с одной кнопки » 2018-02-04 21:54:40

Blaze
відповідей: 5

Всем привет. Нужна помощь и совет с кодом для ИК приемника.. Я долго мучаюсь, пытаюсь сделать прогу в которой можно будет переключать режимы освещения диодной ленты. Соответственно я использовал прерывание, так как в любой момент захочу переключить режим. Почитал как работает приемник ИК. В общем суть в том что если сделать код который просто выводит коды кнопок то все ок. Но как только включается лента то сигнал с кнопки рассчитывается крайне не правильно. Подскажите есть вариант что надо поправить чтоб сигнал приходил правильно? В итоге хотелось бы сделать лампу и если так влияет свет, то получается у меня безвыходная ситуация?

#10 Re: Програмування Arduino » Проблемы с ИК приемником » 2018-02-04 20:35:52

Такая же проблема.  Не нашлась проблема? Пробовал пример из библиотеки IRremote.h под названием IRrecvDemo, там конечно не так часто но тоже проскакивают странные коды. То есть у меня точно больше 2х разных кодов от одной кнопки поступает.

Если я правильно понял.. если не далеко от приемника есть свет от диодов то это может мешать сигналу?

#11 Re: Програмування Arduino » Непонятное поведение светодиодов при программировании мигания » 2018-02-01 14:57:27

Проблема решена. Если вдруг у вас будет подобная ошибка. У меня в массиве ровно 10 значений, но по ошибке в обращении к массиву поставил рандомное число (0,11) то есть будут числа от 0 до 10 включительно. А если начинать с нуля то у меня надо ставить 9 включительно. надеюсь поможет новичкам.

#12 Re: Програмування Arduino » Непонятное поведение светодиодов при программировании мигания » 2018-01-31 23:15:27

Вячеслав Азаров пише:

Это может вырождаться последовательность генератора квазислучайных чисел. Поробуйте в конце цикла выполнять, например так: randomSeed(millis());

В конце какого именно цикла? И что это дает? Вообще когда я убрал переменные, а самое главное убрал массив пинов, то стало все просто великолепно и без залипаний. То есть получается что random не очень пашет с переменными а особенно с массивом. В общем все еще интересно что дает ваша команда.

#13 Програмування Arduino » Непонятное поведение светодиодов при программировании мигания » 2018-01-31 21:52:46

Blaze
відповідей: 2

Всем привет. Решил тут сделать подобие грозового облака типа светильника. Решил пока не приедут материалы нужные опробовать свои силы в программировании диодов. Взял из своего набора 10 диодов, подключил каждый на свой разьем через резистор 220. вот фото.

image1



дальше у меня есть вот такая программа.




int myPins[] = {4,5,6,7,8,9,10,11,12,13};
int pinsNum = 10;
int D = 0;

void setup() {

  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
  
}

// the loop function runs over and over again forever
void loop() {
 
  for (int j=0;j<=random(15,35);j++)
  {
   flash(myPins[random(0,11)]);
  }
   delay(4000);

}

void flash(int led1){
  D = random(20, 120);

  if (random(0,100)<50){
    int led2 = myPins[random(0,pinsNum+1)];
    digitalWrite(led1, HIGH);   // turn the LED on (HIGH is the voltage level)
    digitalWrite(led2, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(D);                       
    digitalWrite(led1, LOW);    // turn the LED off by making the voltage LOW
    digitalWrite(led2, LOW);    // turn the LED off by making the voltage LOW
    delay(D);     
    }
   else {
    digitalWrite(led1, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(D);                       
    digitalWrite(led1, LOW);    // turn the LED off by making the voltage LOW
    delay(D);     
   }
   }

В итоге что у меня происходит. Я занес в массив свои пины, чтоб было проще немного. В конечном итоге запускается функция мигания в которой с некоторой вероятностью могут загореться сразу два диода. в общем красивое мигание получается, однако после нескольких проходов зависает и горит один и тот же диод. При изменении программы постоянно разные странные причины. Чем больше переменных добавляю чтоб облегчить управление программой тем больше странных багов. нифига не понимаю. может потому что у меня Arduino китайский и глючный? smile Помогите. вот такое в конечном итоге получается.

image2

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