Диджитал датчик линии странно себя ведет. Вместо распознавания линии реагирует только на прикосновение к поверхности. Мне надо, чтобы на черную точку на бумаге производился звук на пищалке. Делала то же самое с аналоговым датчиком линии - все работало. Здесь же датчик не обращает внимания ни на какие черные фигуры, только на то в воздухе он или касается поверхности. Помогите, пожалуйста! Коды для аналогового и для диджитал: Аналоговый (работающий): int sensePin = 0; int BUZZER_PIN = 13; void setup() { pinMode(BUZZER_PIN, OUTPUT); } void loop() { int sensorValue = analogRead(A0); if (sensorValue >= 200) { tone(BUZZER_PIN, 500, 50); } } Диджитал (неработающий): int digitalsense = 2; int BUZZER_PIN = 13; void setup() { pinMode(BUZZER_PIN, OUTPUT); } void loop() { int sensorValue1 = digitalRead(digitalsense); if (sensorValue1 < 1) { tone(BUZZER_PIN, 500, 50); } }
закомментированно было добавила, но суть не измненилась. прикасаюсь датчиком к бумаге - пищит без остановки, поднимаю вверх - замолкает. На линии никакой реакции
А так? Код (C++): int sensor_Pin = 2; int BUZZER_Pin = 13; void setup() { pinMode(BUZZER_Pin, OUTPUT); } void loop() { if (!sensor_Pin) { tone(BUZZER_Pin, 500, 50); } }
Можно не писать, но так программа выглядит нагляднее. Вы ошиблись, данный код не сработает. Код (C++): if (!sensor_Pin) { tone(BUZZER_Pin, 500, 50); } Так как sensor_Pin будет больше 0, это просто переменная. Вероятно, Вы хотели, так Код (C++): int sensor_Pin = 2; int BUZZER_Pin = 13; void setup() { pinMode(sensor_Pin, INPUT); pinMode(BUZZER_Pin, OUTPUT); } void loop() { if (!digitalRead(sensor_Pin)) { tone(BUZZER_Pin, 500, 50); } } Можете назвать его модель?
Да Вы правы ошибся немного но тогда вот так? if (digitalRead(!sensor_Pin)) // Если на sensor_Pin "0" тогда пищим Видимо этот
Раз этот, то так. Код (C++): int sensor_Pin = 2; int BUZZER_Pin = 13; void setup() { pinMode(sensor_Pin, INPUT); pinMode(BUZZER_Pin, OUTPUT); } void loop() { if (digitalRead(sensor_Pin)) { tone(BUZZER_Pin, 500, 50); } } Раз требуется следующее. Из описания. Но его требуется настроить, изменив его чувствительность, как это сделать. Попробуйте подстроится под Вашу черную точку, в этом Вам должен помочь светодиод установленный на датчике. Действительно удобно, если верить описанию. Если не получится, попробуйте сделать точку пожирнее. Более подробная информация о датчике - http://amperka.ru/product/digital-line-sensor. Проект с их использованием - http://wiki.amperka.ru/Робототехника:робот-с-датчиками-линии-на-arduino.