Шукаєте відповіді та рішення тестів для Робототехніка? Перегляньте нашу велику колекцію перевірених відповідей для Робототехніка в virt.ldubgd.edu.ua.
Отримайте миттєвий доступ до точних відповідей та детальних пояснень для питань вашого курсу. Наша платформа, створена спільнотою, допомагає студентам досягати успіху!
Білет № 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 ();
}