Помогите доделать блок на СИ
Добавлено: 13 авг 2016, 10:10
Здравствуйте. Сам не силен в СИ, но пытаюсь разобраться. Есть библиотека для дальномеров SR04 и SRF05. Знаю, что есть готовый блок, но мне интереснее самому сделать.
В принципе, я уже сделал, но подозреваю, что таааааакого там навертел.
Вот так выглядит пример:
[spoiler=Спойлер]// SENSOR DEMO
#include "SRF05.h"
// trigPin, echoPin, MaxDist, readInterval
SRF05 Sensor(6, 7, 200, 500);
void setup() {
Serial.begin(9600);
// If using SR04 enable the following line:
//Sensor.Unlock = true;
}
void loop() {
// Distance read
if ( Sensor.Read() > -1 ) {
// New distance reading!
if ( Sensor.Distance == 0 ) {
Serial.println("Out of range");
} else {
// -------------
Serial.print("Dist: ");
Serial.print(Sensor.Distance);
Serial.println(" cm");
}
}
}[/spoiler]
Вот что получилось у меня:
Setup
[spoiler=Спойлер]// If using SR04 enable the following line:
Sensor.Unlock = true;[/spoiler]
Loop
[spoiler=Спойлер]if ( EN_SRF05 == HIGH) // если разрешено на входе
{
// Distance read
if ( Sensor.Read() > -1 )
{
// New distance reading!
if ( Sensor.Distance == 0 ) {
distanceSRF05 = ( MaxDist );
Out_of_range_SRF05 = true;
}
else {
// -------------
distanceSRF05 = ( Sensor.Distance );
Out_of_range_SRF05 = false;
}
}
}
else {
distanceSRF05 = ( MaxDist );
Out_of_range_SRF05 = false;
}[/spoiler]
Как ни странно, ЭТО работает :-) , но прошу знатоков поправить и сделать как положено.
Меня очень смущает в Setup строка Sensor.Unlock = true; Подозреваю, что ее надо куда то в функции запихнуть, но вот как?
Добавлено (13.08.2016, 10:10)
---------------------------------------------
Целиком не влезло
Declare
[spoiler=Спойлер]#include "SRF05.h"
SRF05 Sensor( trigPin , echoPin , MaxDist , readInterval );[/spoiler]
В принципе, я уже сделал, но подозреваю, что таааааакого там навертел.
Вот так выглядит пример:
[spoiler=Спойлер]// SENSOR DEMO
#include "SRF05.h"
// trigPin, echoPin, MaxDist, readInterval
SRF05 Sensor(6, 7, 200, 500);
void setup() {
Serial.begin(9600);
// If using SR04 enable the following line:
//Sensor.Unlock = true;
}
void loop() {
// Distance read
if ( Sensor.Read() > -1 ) {
// New distance reading!
if ( Sensor.Distance == 0 ) {
Serial.println("Out of range");
} else {
// -------------
Serial.print("Dist: ");
Serial.print(Sensor.Distance);
Serial.println(" cm");
}
}
}[/spoiler]
Вот что получилось у меня:
Setup
[spoiler=Спойлер]// If using SR04 enable the following line:
Sensor.Unlock = true;[/spoiler]
Loop
[spoiler=Спойлер]if ( EN_SRF05 == HIGH) // если разрешено на входе
{
// Distance read
if ( Sensor.Read() > -1 )
{
// New distance reading!
if ( Sensor.Distance == 0 ) {
distanceSRF05 = ( MaxDist );
Out_of_range_SRF05 = true;
}
else {
// -------------
distanceSRF05 = ( Sensor.Distance );
Out_of_range_SRF05 = false;
}
}
}
else {
distanceSRF05 = ( MaxDist );
Out_of_range_SRF05 = false;
}[/spoiler]
Как ни странно, ЭТО работает :-) , но прошу знатоков поправить и сделать как положено.
Меня очень смущает в Setup строка Sensor.Unlock = true; Подозреваю, что ее надо куда то в функции запихнуть, но вот как?
Добавлено (13.08.2016, 10:10)
---------------------------------------------
Целиком не влезло
Declare
[spoiler=Спойлер]#include "SRF05.h"
SRF05 Sensor( trigPin , echoPin , MaxDist , readInterval );[/spoiler]