СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Шаблон программного кода для ардуино, для занятий по робототехнике.

Нажмите, чтобы узнать подробности

Шаблон програмного кода  для управления ориентацией солнечной  батареи  по максимальному  потоку света.

Просмотр содержимого документа
«Шаблон программного кода для ардуино, для занятий по робототехнике.»

  1. Код управления солнечными панелями


motor horizontal;

int motorh = 250;


int motorhLimitHigh = 180;

int motorhLimitLow = 0;


motor vertical;

int motorv = 100;


int motorvLimitHigh = 180;

int motorvLimitLow = 0;


int ldrlt = 8; //LDR левый фото резистор

int ldrrt = 9; //LDR правый фоторезистор

int ldrld = 10; //LDR верхний фоторезистор

int ldrrd = 11; //LDR нижний фоторезистор


int buzz_pin = 10;

int buzz_tone = 20;


int tol = 50;


void setup()

{

Serial.begin(9600);

pinMode(buzz_pin, OUTPUT);

horizontal.attach(31);

vertical.attach(30);

horizontal.write(motorh);

vertical.write(motorv);

}


void loop()

{

int lt = digitalRead(ldrlt); // top левый

int rt = digitalRead(ldrrt); // top правый

int ld = digitalRead(ldrld); // down верхний

int rd = digitalRead(ldrrd); // down нижний


int avt = (lt + rt) / 2;

int avd = (ld + rd) / 2;

int avl = (lt + ld) / 2;

int avr = (rt + rd) / 2;


int dvert = abs(avt - avd);

int dhoriz = abs(avl - avr);


Serial.print("avt: ");

Serial.print(avt);

Serial.print(" ");

Serial.print("avd: ");

Serial.print(avd);

Serial.print(" ");

Serial.print("avl: ");

Serial.print(avl);

Serial.print(" ");

Serial.print("avr: ");

Serial.println(avr);


Serial.print("h: ");

Serial.print(motorh);

Serial.print(" ");

Serial.print("v: ");

Serial.print(motorv);

Serial.print(" ");


if (dhoriz tol)

{

if (avl avr)

{

if (motorh - 1 = motorhLimitLow) motorh--;

else beep(150);

}

else if (avl

{

if (motorh + 1

else beep(150);

}

horizontal.write(motorh);

}


if (dvert tol)

{

if (avt avd)

{

if (motorv + 1

else beep(100);

}

else if (avt

{

if (motorv - 1 = motorvLimitLow) motorv--;

else beep(100);

}

vertical.write(motorv);

}

}


void beep(unsigned char delayms){

digitalWrite(buzz_pin, buzz_tone);

delay(delayms);

digitalWrite(buzz_pin, 0);

delay(delayms);

}






Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!