Skip to content

Instantly share code, notes, and snippets.

@lazyval
Created December 21, 2011 21:11
Show Gist options
  • Save lazyval/1507720 to your computer and use it in GitHub Desktop.
Save lazyval/1507720 to your computer and use it in GitHub Desktop.
Processing code file for Arduino (real-time system's lab)
#include <Servo.h> // библиотека по работе с сервоприводом
Servo myservo;
const int ledPin = 13;
const int IRPIN = 0;
int pos = 0;
void setup() {
Serial.begin(9600); // Открываем соединение (в скобках -- скорость в бодах)
myservo.attach(7); // Место (pin) присоединения сервопривода среди цифровых входов
pinMode(ledPin, OUTPUT);
}
void loop() {
// Программа начинает свою работу только при получении сигнала с порта компьютера
while(Serial.available() == 0);
while(true) {
delay(150);
for(pos = 0; pos < 180; pos +=1) // Производим плавный поворот сервопривода на 1 гр.
{
read_distance();
myservo.write(pos); // Узнаем текущее положение сервопривода.
delay(100); // Задержка в мкс для плавности поворота
}
for(pos = 180; pos>=1; pos-=1) // Если дошли до крайнего положения, то идем обратно
{
read_distance();
myservo.write(pos);
delay(100);
}
}
int val = Serial.read() - '0';
if(val == 1) { // Тестовый код -- при получении 1 включаем контрольный светодиод
Serial.println("Led is ON");
digitalWrite(ledPin,HIGH);
}
else if( val == 0 ) { // если "0" послан на серийный (serial) порт, то выключаем
Serial.println("Led is OFF");
digitalWrite(ledPin,LOW);
}
Serial.println(val);
}
}
void read_distance() {
float volts = analogRead(IRPIN)*0.0048828125; // Вычисл. напряжение на pin с сенсором
// Вычисляем дистанцию по показателям
float distance = 65*pow(volts, -1.10); // сенсора согласно графику (см. конец)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment