• - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!
подписаться на RSS-ленту

Практическое программирование Arduino/CraftDuino - фоторезистор

0. Начало
1. Цифровой ввод — кнопка
2. Аналоговый вывод — Fading
3. Аналоговый ввод – потенциометр
4. Аналоговый ввод – осциллограф
5. Генерация звука – пьезоизлучатель.

6. Фоторезистор



Переменный резистор можно представить себе, как два последовательно соединённых резистора — т.н. делитель напряжения

но у потенциометра можно соответствующим образом менять их сопротивление.



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

Например, фоторезистор.

Фоторезистор — полупроводниковый прибор, изменяющий величину своего сопротивления при облучении светом.


принципиальная схема:

Остаётся только подправить скетч Dimmer_pot

/*
 * Photoresistor
 * тестовый скетч для работы с фоторезистором
 */

int photoPin = 0;  // фоторезистор подключен 0-му аналоговому входу
int ledPin = 9;    // светодиод подключается к digital pin 9
int val = 0;       // переменная для хранения значения входного напряжения

void setup() 
{
  Serial.begin(9600);
}

void loop() 
{
  val = analogRead(photoPin);  // считываем значение с фоторезистора
  Serial.println(val);
  val = val/4;                 // конвертируем из 0-1023 к 0-255
  analogWrite(ledPin,val);     // устанавливаем значение
  delay(200);
}

Уровень напряжения, зависящий от освещённости фоторезистора, считывается на аналоговом порту Analog Input 0 и записывается в COM-порт.
Далее соответствующая величина устанавливается на PWM-порту digital pin 9, к которому подключен светодиод.
Получается, что яркость свечения светодиода будет зависеть от освещённости фоторезистора :)


Уважаемый Zoltberg выдал мне для опытов фоторезисторы RPP131 — от старого проигрывателя пластинок :)
В темноте (если закрыть окошечко пальцем :) – сопротивление составляет около 300k, а при освещении – 20k.


Теперь усложним задачу :)
Берём второй фоторезистор и теперь попробуем подключить второй канал данных об освещённости.
Выход от второго фоторезистора заведём на Analog Input 1.

Принципиальная схема:

Вот так просто – мы получим простейшее зрение для робота :)
Пора это дело запрограммировать :)
Очевидный вариант – определять какой фоторезистор засвечен больше :)


/*
 * Photoresistor duo :)
 * работаем с двумя фоторезисторами
 * определяем - какой из них засвечен сильнее и зажигаем соответствующий светодиод
 * если освещённость одинаковая - зажигаем оба.
 */

int photoPin1 = 0;  // первый фоторезистор подключен 0-му аналоговому входу
int photoPin2 = 1;  // второй фоторезистор
int ledPin1 = 12;   // первый светодиод подключается к digital pin 9
int ledPin2 = 13;   // первый светодиод подключается к digital pin 10
int val1 = 0;       // переменные для хранения значения входного напряжения 
int val2 = 0;       // 

void setup() 
{
  Serial.begin(9600);
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
}

void loop() 
{
  val1 = analogRead(photoPin1);  // считываем значение с фоторезисторов
  val2 = analogRead(photoPin2); 
  Serial.print("values: ");      // выводим их в COM-порт
  Serial.print(val1);
  Serial.print(" : ");
  Serial.println(val2);
  val1 = val1/4;                 // конвертируем из 0-1023 к 0-255
  val2 = val2/4;                 // 
  if(val1==val2)                 // если равны - зажигаем оба светодиода
  {
     digitalWrite(ledPin1, HIGH);
     digitalWrite(ledPin2, HIGH);
     Serial.println("forward");
  }
  else
  {
    if(val1>val2)                 // если освещённость одного больше - зажигаем 
    {                             // соответствующий светодиод, а второй гасим
      digitalWrite(ledPin1, HIGH);
      digitalWrite(ledPin2, LOW);
      Serial.println("left");
    }
    else
    {
      digitalWrite(ledPin2, HIGH);
      digitalWrite(ledPin1, LOW);
      Serial.println("right");
    }
  }
  delay(200);
}



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

Например, у меня отыскался старый советский терморезистор :) Однако, в отличие, от фоторезистора – этот пример не так нагляден :)


читать далее: 7. Сенсор на светодиоде

Статья про фоторезистор от Ильи Данилова:
http://mk90.blogspot.com/2009/08/blog-post_14.html
  • 0
  • 18 августа 2009, 13:14
  • admin

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.