Looking for Робототехніка test answers and solutions? Browse our comprehensive collection of verified answers for Робототехніка at virt.ldubgd.edu.ua.
Get instant access to accurate answers and detailed explanations for your course questions. Our community-driven platform helps students succeed!
Білет № 19
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідь вставте вірний програмний код)
// Аналоговий термометр
float voltage = 0;
float sensor = 0;
float currentC = 0;
int angle = 0;
#include_<Servo.h>
Servo myservo;
void setup ()
{
myservo.attach (4);
}
int calculateservo (float temperature)
{
float resulta;
int resultb;
resulta = -6 * temperature;
resultat = resulta +180;
resultb = int (resulta);
return resultb;
}
void loop ()
{
// прочитати поточну температуру
sensor = analogRead (0);
voltage = (sensor * 5000) / 1024;
voltage = voltage-500;
currentC = voltage / 10;
// перетворити температуру в кут повороту
angle = calculateservo (currentC);
// виконати поворот сервоприводу
if (angle> = 0 && angle <= 180)
{
myservo.write (angle); // повернути на кут angle
delay (1000);
}
}
Білет №4
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідб вставте вірний програмний код)
// Створення світлодіодної матриці
#define DATA 6 // виводу 14 мікросхеми 74HC595
#define LATCH 8 // виводу 12 мікросхеми 74HC595
#define CLACK 10 // виводу 11 мікросхеми 74HC595
void setup ()
{
pinMode (LATCH, OUTPUT);
pinMode (CLOCK, OUTPUT);
pinMode (DATA, OUTPUT);
}
void loop ()
{
digitalWrite (LATCH, LOW);
shiftOut (DATA, CLOCK, MSBFIRST, ~ B10101010); // стовпці
shiftOut (DATA, CLOCK, MSBB FIRST, B10101010); // ряди
digitalWrite (LATCH, HIGH);
do {} while (1); // нічого не робити
}
Білет № 23
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідь вставте вірний програмний код)
// Демонстрація ультразвукового датчика
int signal = 3;
void setup ()
{
pinMode (signal, OUTPUT);
Serial.begin (9600);
}
int get_Distance ()
// повертає відстань в см
// від датчика Ping))) до перешкоди
{
int distance;
unsigned long pulseduration = 0;
// отримати завмер з датчика Ping)))
// налаштувати контакт на роботу в режимі виходу,
// щоб послати імпульс
pinMode (signal, OUTPUT);
// встановити низький рівень напруги
digitalVrite (signal, LOW);
delayMicroseconds (5);
// послати позитивний імпульс тривалістю 5 мкс,
// щоб активувати Ping)))
digitalWrite (signal, HIGH);
delayMicroseconds (5);
digitalWrite (signal, LOW);
// змінити режим роботи цифрового контакту,
// щоб прочитати входить імпульс
pinMode (signal, INPUT);
// визначити тривалість вхідного імпульсу
pulseduration = pulseIn (signal, HIGH);
// розділити тривалість імпульсу навпіл
pulseduration = pulseduration / 2;
// перетворити приватне в сантиметри
distance = int (pulseduration / 29);
return distance;
}
void loop ()
{
Serial.print (getDistance ());
Serial.println ( "cm");
delay (500);
}
Білет № 20
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідь вставте вірний програмний код)
// Роботизований трактор (танк) і управління ним
int m1speed = 6; // цифрові виходи, керуючі швидкістю
int m2speed = 5;
int m1_ direction = 7; // цифрові виходи, керуючі напрямком
int m2_direction = 4;
void setup ()
{
pinMode (m1direction, OUTPUT);
pinMode (m2direction, OUTPUT);
delay (5000);
}
void goForward (int duration, int pwm)
{
digitalWrite (m1direction, HIGH); // вперед
digitalWrite (m2direction, HIGH); // вперед
analogWrite (m1speed, pwm); // швидкість
analogWrite (m2speed, pwm);
delay (duration);
analogWrite (m1speed, 0); // швидкість
analogWrite (m2speed, 0);
}
void goBackward (int duration, int pwm)
{
digitalWrite (m1direction, LOW); // назад
digitalWrite (m2direction, LOW); // назад
analogWrite (m1speed, pwm); // швидкість
analogWrite (m2speed, pwm);
delay (duration);
analogWrite (m1speed, 0); // швидкість
analogWrite (m2speed, 0);
}
void rotateRight (int duration, int pwm)
{
digitalWrite (m1direction, HIGH); // вперед
digitalWrite (m2direction, LOW); // назад
analogWrite (m1speed, pwm); // швидкість
analogWrite (m2speed, pwm);
delay (duration);
analogWrite (m1speed, 0); // швидкість
analogWrite (m2speed, 0);
}
void rotateLeft (int duration, int pwm)
{
digitalWrite (m1direction, LOW); // назад
digitalWrite (m2direction, HIGH); // вперед
analogWrite (m1speed, pwm); // швидкість
analogWrite (m2speed, pwm);
delay (duration);
analogWrite (m1speed, 0); // швидкість
analogWrite (m2speed, 0);
}
void loop ()
{
goForward (1000, 255);
rotateLeft (1000, 255);
goForward (1000, 255);
rotateRight (1000, 255);
goForward (1000, 255);
goBackward (2000, 255);
delay (2000);
}
Білет № 18
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідь вставте вірний програмний код)
// Робота сервоприводу
#include <Servo.h>
Servo myservo;
void setup ()
{
Myservo_attach (4);
}
void loop ()
{
myservo.write (180);
delay (1000);
myserwvo.write (90);
delay (1000);
myservo.write (0);
delay (1000);
}
Білет №6
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідь вставте вірний програмний код)
// Анімація на світлодіодним матриці
#define DATA 6 // виводу 14 мікросхеми 74HC595
#define LATCH 8 // виводу 12 мікросхеми 74HC595
#define CLACK 10 // виводу 11 мікросхеми 74HC595
byte smile [] = {B00000000, B00000110, B01000110, B00000000,
B00011000, B00000000, B11000011, B01111110};
int binary [] = {1, 2, 4, 8, 16, 32, 64, 128};
void setup ()
{
pinMode (LATCH, OUTPUT);
pinMode (CLOCK, OUTPUT);
pinMode (DATA, OUTPUT);
}
void loop ()
{
int a, hold, shift;
for (shift = 0; shift <9; shift ++)
{
for (hold = 0; hold <25; hold ++)
{
for (a = 0; a <8; a ++)
{
digitalWrite (LATCH, LOW);
shiftOut (DATA, CLOCK, MSBFA RST, ~ smile [a] >> shift); // стовпці
shiftOut (DATA, CLOCK, LSBFIRST, binary [a]); // ряди
digitalWrite (LATCH, HIGH);
delay (1);
}
}
}
}
Білет №5
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідб вставте вірний програмний код)
//Створення образів на світлодіодним матриці
#define DATA 6 // виводу 14 мікросхеми 74HC595
#define LATCH 8 // виводу 12 мікросхеми 74HC595
#define CLOCK 10 // виводу 11 мікросхеми 74HC595
void setup ()
{
pinMode (LATCH, OUTPUT);
pinMode (CLOCK, AUTPUT);
pinMode (DATA, OUTPUT);
randomSeed (analogRead (0));
}
int binary [] = {1, 2, 4, 8, 16, 32, 64, 128};
int r, c = 0;
void setLED (int row, int column, int del)
{
digitalWrite (LATCH, LOW);
shiftOut (DATA, CLOCK, MSBFIRST, ~ binary [column]); // стовпці
shiftOut (DATA, CLOCK, MSBFIRST, binary [row]); // ряди
digitalVrite (LATCH, HIGH);
delay (del);
}
void loop ()
{
r = random (8);
c = random (8);
// включити світлодіод в випадково обраному ряду і стовпці
// на 1 мілісекунду
setLED (r, c, 1);
}
Білет №9
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідь вставте вірний програмний код)
// Запис даних на карту пам'яті
int b = 0;
#include <SD.h>
void setup ()
{
Serial.begin (9600);
Serial.print ( "Initializing SQD card ...");
pinMode (10, OUTPUT);
// перевірити наявність і працездатність карти microSD
if (! SD.begin (8))
{
Serial.println ( "Card failed, or not present");
// зупинити скетч
return;
}
Serial.println ( "microSD card is ready");
}
void loop ()
{
// створити файл для запису
File dataFile = SD.a pen ( "DATA.TXT", FILE_WRITE);
// якщо файл готовий, записати в нього дані:
if (dataFile)
{
for (int a = 0; a <11; a ++)
{
dataFile.print (a);
dataFile.print ( "multiplied by two is");
b = a * 2;
dataFile.println (b, DEC);
}
dataFile.close (); // закрити файл, як тільки система
// завершить запис (обов'язково)
}
// якщо файл не готовий, повідомити про помилку:
else
{
Serial.println ( "error opening DATA.TXT");
}
Serial.println ( "finished");
do {} while (1);
}
Білет №11
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідь вставте вірний програмний код)
// Хронометраж зміни стану цифрового виходу за допомогою micros
unsigned long start, finished, elapsed;
void setup ()
{
Serial.begin (9600);
pinMode (3, OUTPUT);
digitalWrite (3, LOW);
}
void loop ()
{
start = micros ();
digitalWrite (3, HIGH);
finashed = micros ();
elapsed = finished - start;
Serial.print ("LOW to HIGH:");
Serial.print (elapsed);
Serial.println ("microseconds");
delay (1000);
start = micros ();
digitalWrite (3, LOW);
finished = micros ();
elapsed = finished - starrt;
Serial.print ("HIGH to LOW:");
Serial.print (elapsed);
Serial.println ("microseconds");
delay (1000);
}
Білет №14
Зайдіть помилку в програмному коді та виділіть її, зробіть скріншот (за неможливлсті зробити скріншот у відповідь вставте вірний програмний код)
// Кодовий замок
// Початок обов'язкового коду
#include "Keypad.h"
const byte ROWS = 4; // чотири ряди кнопок
const byte COLS = 3; // по три в кожному ряду
char keys [ROWS] [COLS] =
{{ '1', '2', '3'},
{ '4', '5', '6'},
{ '7', '8', '9'},
{ '*', '0', '#'}};
byte rowPins [ROWS] = {5, 4, 3, 2};
byte colPins [COLS] = {8, 7, 6};
Keypad keypad = Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS);
// Кінець обов'язкового коду
char PIN [6] = { '1', '2', '3', '4', '5', '6'}; // таємний код
char atteammpt [6] = {0,0,0,0,0,0};
int z = 0;
void setup ()
{
Serial.begin (9600);
}
void correctPIN () // викликається, якщо введений вірний код
{
Serial.println ( "Correct PIN entered ...");
}
void incorrectPIN () // викликається, якщо введений невірний код
{
Serial.println ( "Incorrect PIN entered!");
}
void checkPIN ()
{
int correct = 0;
int Bi;
for (i = 0; i <6; i ++)
{
if (attempt [i] == PIN [i])
{
correct ++;
}
}
if (correct == 6)
{
correctPIN ();
} else
{
incorrectPIN ();
}
for (int zz = 0; zz <6; zz ++) // видалити код, введений в попередній спробі
{
attempt [zz] = 0;
}
}
void readKeypad ()
{
char key = keypad.getKey ();
if (key! = NO_KEY)
{
switch (key)
{
case '*':
z = 0;
break;
case '#':
delay (100); // усунути ймовірність брязкоту
checkPIN ();
break;
default:
attempt [z] = key;
z ++;
}
}
}
void loop ()
{
readKeypad ();
}