По результатам поиска в Google - Arduino в Украине не нашлось! Пусть этот блог будет началом!!!

воскресенье, 26 сентября 2010 г.

Mood Lamp в новом стакане (Arduino+PWM+PIR sensor)

После испытания контроллера лампы в стакане для молока я понял, что это для меня предпочтительный форм- фактор. В магазине как раз стояла одна такая импортная лампа высота 30см ширина 11см. Вот я взял ее и просто опустил туда свою Атмегу 168 со светодиодами. светится ярко и красиво!




для управленния лампой нужно было придумать что-то "без телесное" так как дырочек в "стакане" - нет. Сначала по традиции пришла в голову идея хлопка! Но хлопать когда все спят что-бы потушить свет.... не то.... Вот я и вспомнил про датчик движения, купленный для подъезда пару лет назад, но так и не установленный из-за лени.. Сначала я думал там что-то крутое внутри... но увы китайский ширпотреб....

После снятия корпуса датчик перестал реагировать на движения... хотя я его до этого не проверял, но думаю он был исправен. В интернете есть схема подобного датчика  и опытным путем я пришел к выводу, что с ножки усилителя (единственной) можно снять какой-нибудь сигнал. Но не тут то было - напряжение пляшет без какой либо логической последовательности... короче по-тыкав по схеме, я нашел хоть что-то мне понятное и ....


присоединил его к Arduino для дальнейших экспериментов. На инфракрасный датчик нужно одеть трубочку, из фольги например, т.к. он постоянно реагирует на что-то. Потом поместив его в корпус лампы я стал водить над ним рукой. Когда рукой не проводишь напряжение СКАЧЕТ в промежутке 0-2 в, а когда проводишь подскакивает до 3-х вольт.
Скетч из примеров Arduino:

const int analogInPin = 0;  // Analog input pin that the PIR Sensor is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {

  Serial.begin(9600);
}

void loop() {

  sensorValue = analogRead(analogInPin);   // read the analog in value:           

  outputValue = map(sensorValue, 0, 1023, 0, 10);    // map it to the range of the analog out:



  Serial.print("sensor = " );     // print the results to the serial monitor:                   
  Serial.print(sensorValue);     
  Serial.print("\t output = ");     
  Serial.println(outputValue);  


  delay(250);  // after the last reading:                   
}

Назначение этого скетча считывать показания датчика (постоянно скачущие) и вписывать их в шкалу  от 1 до 10 (или другую).
                                         




Лут.... на 3 бала.... отпала часть внешней дорожки питания и часть SMD мест с ней.


Лужение с глицерином.... так себе тоже..... надо что-то придумывать, а то паяльник слабый...
Мосфеты выпаял из первой платы и светодиоды от туда же... один капут.... Готовлюсь к припайке SMD... волнуюсь....
Вот как я "полечил" плату....
Наконец-то все в сборе!!!!! Радиатор для стабилизатора на 5в (понижая с 11в сильно греется)
+ PIR sensor + USB-TTL переходник (FTDI) для программирования ATmega 168.

Дальше буду подгонять программу для получения приятных оттенков!!!