Станок для расчета количества резисторов.
- Войдите на сайт для отправки комментариев
Ср, 30/04/2014 - 08:15
На днях решил зделать для своей работы необычный станок, чтоб считать сколько в пачке резисторов.
Вот такие резисторы. Хочу как зделать мотор крутит ленту и она проходит через стоящие снизу фотодиод, а сверху светодиод, получаеться в то время как появляеться отверстие возле резистора, открываеться фотодиод. Проблема в том что не могу зделать чтоб он именно считал сколько раз фоторезистор открылся сколько закрылся. А так фотодиод подключал к ардуино Mega 2560 фотодиод на аналоговом входе всё работает отлично. Прошу кто может помоч скажите в чём у меня проблема?
int sensePin = 3;
int ledPin = 10;
int niki;
int hi;
void setup()
{
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
analogRead(3);
niki=0;
}
void loop()
{
int val = analogRead(sensePin);
val = constrain(val, 10, 65); // тут как я понимаю либо открыт 10, либо закрыт 65
if (val==65)
{
hi=10;
}
if (val==10&&hi==10)
{
niki++; //ники это и есть счётчик
hi=9;
}
}
Не ясно какой первоначальный уровень сигнала val при открытом и закрытом фотодиоде? Вообще зачем там constrain? Вот простой счётчик.
#define maxlow 200 //уровень максимального 0 (в попугаях) #define minhigh 500 //уровень минимальной 1 (в попугаях) unsigned int counter, val; boolean logiclevel,prevlevel; void setup() { Serial.begin(9600); } void loop() { val=analogRead(A5); if (val < maxlow) logiclevel=0; if (val > minhigh) logiclevel=1; if (prevlevel != logiclevel) { counter++; prevlevel = logiclevel; Serial.println(counter); } }та готовую щелевую оптопару возьмите, там уже все включено. :)
Michal, а если я куплю щелевую оптопару, какой код к ней использовать?