Помогите с фоторезистором

sherman1977
Offline
Зарегистрирован: 26.03.2017

Помогите со схемой модключения резистора GL5516. Как только не пробовал в монитор порта выводит одни и те же значения хотьзакрывай полностью хоть лампой свети.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А как Вы пробовали? Схему давайте. И скетч заодно.

vk007
Offline
Зарегистрирован: 16.06.2015

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Скетча нет или у меня браузер глючит?

bwn
Offline
Зарегистрирован: 25.08.2014

ЕвгенийП пишет:

Скетча нет или у меня браузер глючит?

Ни скетча, ни схемы, ни ТС.))))

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

bwn пишет:

Ни скетча, ни схемы, ни ТС.))))

нет человека - нет проблемы.(с)

sherman1977
Offline
Зарегистрирован: 26.03.2017

sherman1977
Offline
Зарегистрирован: 26.03.2017

Пытаюсь собрать данную схему

А скетч вот:

#include <Servo.h> // include Servo library 
 
Servo horizontal; // horizontal servo
int servoh = 90;     // stand horizontal servo
 
Servo vertical;   // vertical servo 
int servov = 90;     // stand vertical servo
 
// LDR pin connections
//  name  = analogpin;
int ldrlt = 0; //LDR top left
int ldrrt = 1; //LDR top rigt
int ldrld = 2; //LDR down left
int ldrrd = 3 ; //ldr down rigt
 
void setup()
{
  Serial.begin(9600);
// servo connections
// name.attacht(pin);
  horizontal.attach(3); 
  vertical.attach(4);
}
 
void loop() 
{
  int lt = analogRead(ldrlt)/2; // top left
  int rt = analogRead(ldrrt)/2; // top right
  int ld = analogRead(ldrld)/2; // down left
  int rd = analogRead(ldrrd)/2; // down rigt
  
  int dtime = analogRead(4)/20; // read potentiometers  
  int tol = analogRead(5)/4;
  
  int avt = (lt + rt) / 2; // average value top
  int avd = (ld + rd) / 2; // average value down
  int avl = (lt + ld) / 2; // average value left
  int avr = (rt + rd) / 2; // average value right
 
  int dvert = avt - avd; // check the diffirence of up and down
  int dhoriz = avl - avr;// check the diffirence og left and rigt
    
  if (-1*tol > dvert || dvert > tol) // check if the diffirence is in the tolerance else change vertical angle
  {
  if (avt > avd)
  {
    servov = --servov;
     if (servov > 180) 
     { 
      servov = 180;
     }
  }
  else if (avt < avd)
  {
    servov= ++servov;
    if (servov < 0)
  {
    servov = 0;
  }
  }
  vertical.write(servov);
  }
  
  if (-1*tol > dhoriz || dhoriz > tol) // check if the diffirence is in the tolerance else change horizontal angle
  {
  if (avl > avr)
  {
    servoh = --servoh;
    if (servoh < 0)
    {
    servoh = 0;
    }
  }
  else if (avl < avr)
  {
    servoh = ++servoh;
     if (servoh > 180)
     {
     servoh = 180;
     }
  }
  else if (avl = avr)
  {
    // nothing
  }
  horizontal.write(servoh);
  Serial.println(lt);
  
  }
   delay(dtime); 
evgta
Offline
Зарегистрирован: 02.09.2016

int ldrlt = 0; //LDR top left  >>>int ldrlt = A0; //LDR top left

и прочие строки тоже

sherman1977
Offline
Зарегистрирован: 26.03.2017

В смысле что неправильно?

sherman1977
Offline
Зарегистрирован: 26.03.2017

А понял попробую рихтануть

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

evgta пишет:

int ldrlt = 0; //LDR top left  >>>int ldrlt = A0; //LDR top left

это без разницы абсолютно.

ТС, см. http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Держать каждый номер вывода в int, вместо того чтобы объявить в define, это видимо массовый психоз.

bwn
Offline
Зарегистрирован: 25.08.2014

Voodoo Doll пишет:

Держать каждый номер вывода в int, вместо того чтобы объявить в define, это видимо массовый психоз.

Это задел на будущее, когда МК много, много ног отрастит.

sherman1977
Offline
Зарегистрирован: 26.03.2017

Еще вопрос переменные dtime и tol берут значения с аналоговых пинов 4 и 5. Лучше подключить потенциометры или сделать их константами?

bwn
Offline
Зарегистрирован: 25.08.2014

Если напряжение на них не превышает уровня питания, то как угодно.