Created
December 21, 2011 21:11
-
-
Save lazyval/1507720 to your computer and use it in GitHub Desktop.
Processing code file for Arduino (real-time system's lab)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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