Сегодня я хотел бы вам рассказать как я подключил датчик освещенности от мак бук про к ардуино. На самом деле все просто. Главное — немного усидчивости.
Запасная часть у меня оказалась случайно, я выпросил убитый ноутбук MAC book pro 15`, в котором не хватало большей части запчастей, у своих коллег, (они имели на него виды в качестве мишени для тира) не помню, что конкретно мне от него понадобилось кажется кнопки для замены клавиатуры на ноуте моей супруги, но среди всего прочего – полезного я нашел датчик освещения. Построен он на фото диоде – сенсоре для видимого света от SHARP BS520 а также на усилителе от MAXIM MAX4231. Очень маленькая и компактная конструкция, сложно было понять что к чему из за обилия мелких деталей и почти не просматриваемой дорожки.
Реверс-инженеринг
Первым делом я погуглил и нашел кучу упоминаний об этом модуле от мака, но о том какой провод куда идет – история умалчивает. Также, согласно спецификации на микросхему питается она от 6 ножки, и не оставило труда, методом исключения и с помощью мультиметра понять какой провод к чему идет.
Первым делом я отрезал старый коннектор и припаял к нему монтажную линейку.
Я подключил к монтажной плате +5В от ардуино, там же я взял землю. Развел питание на плате и подключил к нему наш датчик. Аналоговый сигнал забирается с порта вывода номер A0.
Также, для наглядности я использовал светодиод от мертвого контроллера переносного винчестера. Если значение опустится ниже чем 500 – он загорается. Получилась простая сборка: сенсор – исполнитель. Когда темно к комнате горит ночник, значит значение счетчика ниже чем 500. Если более – светодиод гаснет. Резистор к светодиоду не нужен если он подключен через 13 порт, но я нарочно использовал 12 порт и поместил резистор на 220Ом.
В итоге я написал такой элементарный скрипт:
void setup()
{
// Установливаем аналоговый порт А0 на вход
pinMode (A0, INPUT);
// Устанавливаем коммуникацию с портом
Serial.begin(9600);
}
void loop()
{
// Записываем значение с датчика
int val = analogRead(A0);
// Условия загорания Led
digitalWrite(12, (val<500)?HIGH:LOW);
// Выводим в порт данные
Serial.println(val);
// Задержка между циклами
delay(500);
}
А вот так это все выглядит схематически:
Выводы
В итоге моих изысканий я научился:
1. Разбирать мак и собирать его назад, правда сомнительное умение – он уже устарел.
2. Понял, что оказывается техника МАК – это просто грамотно собранное решение а не предмет культа. (Да простят меня маководы за такие эксперименты над маком)
3. Я начал заниматься электроникой несколько недель назад, поэтому думаю, что проект будет также полезен для новичка.
Ссылки на доки и сенсор
Сам сенсор
Микросхема MAXIM MAX4233ABC-T
Фотодиод Sharp
Офф сайт Arduino
Дальнейшие планы
Заинтересовала камера, встроенная в монитор. Она построена на микросхеме, у которой куча полезных интерфейсов, включая I2C и USB, аппаратный кодек JPEG и аудио кодек. Но это уже совсем иная история.
Итак на сегодня все, до встречи.
P.S. Благодарю за Инвайт, НЛО!
Автор: Nordium