Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 1
1

Прошу мейзей в проверке кода

09.10.2018, 20:53. Показов 571. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день уважаемые форумчане! Так сложилась моя нелегкая ситуация, что необходима Ваша помощь, а именно есть "как бы работающий скетч", человек , который его делал утверждает что он полностью рабочий, но я , подключая свои девайсы, немогу точно так же утверждать. Будет ли у Вас возможность проверить данное творение? Очень на это уповаю! Да прибудет с Вами сила!)
Необходима ардуино Нано, уздатчик, реле(лоу тригер), потенциометр 10ком, ргб светодиод и обычный светодиод.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/*
дальномер во время мигания отображает реальную дальность измерения
(допустим прибор ставится в узкий пролет (до 1 метра) - вкл питание,
настроил макс дальность срабатывания ((это желтый свет ргб светодиода)
т.е. я установил потенциометром определенную дистанцию (например 1 м, наглаз)
всё что дальше 1 м - не регистрируется (устройство не реагирует),
всё что ближе отображается желтым ргб (а после 30 сек и замыкает реле).
Первые 30 сек реле не реагирует на возникновение препятствий,
а после, при возникновении иных, замыкается.
Тоесть первые 30 секунд необходимы для комфортной установки устройства,
а после 30 секунд устройство работает в нормальном режиме (преграда - замыкает реле)
*/
 
//////  выводы подключения компонентов  //////////
 
const int potPin = A0;
 
const int echoPin = 9;
const int trigPin = 8;
 
const int relay = 15;    /// A1
const int g_led = 16;    /// A2
const int b_led = 17;    /// A3
const int led = 18;      /// A4
 
/////////  переменные  //////////////////
 
long period = 300;                ///  период снятия показаний с дальномера 300 - 0.3 сек
long blink_period_0 = 1000;       ///  период миганий кр. светодиода в начале  1000 - 1 сек
long blink_period_1 = 500;        ///  период миганий кр. светодиода в конце  500 - 0.5 сек
long relay_period = 3000;         ///  время работы реле  3000 - 3 сек
 
unsigned long us_millis = 0;
unsigned long time = 0;
unsigned long relay_time = 0;
 
int distance = 0;
int distance_control = 0;
int counter = 0;
byte state = 0;
byte led_state = 0;
byte blink_state = 0;
 
 
 
void setup()
{
  Serial.begin (9600);
 
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(g_led, OUTPUT);
  pinMode(b_led, OUTPUT);
  pinMode(led, OUTPUT);
  pinMode(relay, OUTPUT);
  digitalWrite(relay, HIGH);
}
 
void loop()
{
  Serial.print(distance_control);
  Serial.print("  ");
  Serial.print(distance);
  Serial.print("          ");
  Serial.print(blink_state);
  Serial.print("  ");
  Serial.println(counter);
 
  //////////////  работа дальномера  //////////////////////
 
  if (millis() - us_millis >= period)
  {
    DISTANCE();
    us_millis = millis();
  }
 
 
  ///////  определяем предельное расстояние только в первые 30 сек ////////////////////
 
  if (blink_state < 2)
  {
    distance_control = map(analogRead(potPin), 0, 1023, 10, 200);
  }
 
 
  //////  мигаем красным светодиодом  //////////////
 
  if (blink_state == 0)
  {
    if ((millis() - time) > (led_state ? blink_period_0 : blink_period_0))
    {
      led_state = !led_state;
      counter ++;
      digitalWrite(led, led_state);
      time = millis();
    }
 
    if (counter >= 20)
    {
      counter = 0;
      blink_state = 1;
    }
  }
 
  if (blink_state == 1)
  {
    if ((millis() - time) > (led_state ? blink_period_1 : blink_period_1))
    {
      led_state = !led_state;
      counter ++;
      digitalWrite(led, led_state);
      time = millis();
    }
 
    if ((counter / 2) >= 10)
    {
      counter = 0;
      digitalWrite(led, LOW);
      blink_state = 2;
    }
  }
 
  ////////// РАБОЧИЙ ЦИКЛ  //////////////////////
 
 
  if (distance > 0 && distance < distance_control && blink_state == 2)
  {
    digitalWrite(g_led, HIGH);
    digitalWrite(b_led, HIGH);
    digitalWrite(relay, LOW);
    relay_time = millis();
    state = 1;
  }
 
  if (state == 1)
  {
    if (millis() - relay_time > relay_period)
    {
      digitalWrite(g_led, LOW);
      digitalWrite(relay, HIGH);
      state = 2;
    }
  }
}
 
//////////  функция измерения расстояния дальномером  /////////////////
 
void DISTANCE()
{
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
 
  distance = pulseIn(echoPin, HIGH) / 58;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.10.2018, 20:53
Ответы с готовыми решениями:

Нужны эксперты в проверке кода
Вот нашкрябал код, но хотелось бы узнать у знающих и разбирающихся в этом людей: код можно...

Ошибки при проверке кода программой pylint
написал для примера, помогите разобраться что за ошибка, что значит &quot;выражение-не-назначено&quot; ? ...

Как отследить ошибку при проверке кода через Дебагер
Всем привет. Подскажите как отследить ошибку при проверке программы через Дебагер я со своим кодом...

Сайт CodeWars при проверке решения выдаёт ошибку, при проверке в VisualStudio ошибки нет
Задача написать метод,который будет проверять порядок круглых скобок. Написал код, проверил в...

Прошу сделать ревью кода
Всем доброго времени суток. Есть код, который очень далек от идеала и мне хотелось бы что бы гуру...

1
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
09.10.2018, 22:38 2
Цитата Сообщение от totoshka41 Посмотреть сообщение
человек , который его делал утверждает что он полностью рабочий
Фрилансер что ли?

Цитата Сообщение от totoshka41 Посмотреть сообщение
подключая свои девайсы, немогу точно так же утверждать.
А что не так по вашему?
0
09.10.2018, 22:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2018, 22:38
Помогаю со студенческими работами здесь

Прошу пояснить кусок кода
собственно, только только начал изучать java не могу разобраться с кодом мб кто нибудь пояснит...

Прошу пояснить отрывок кода
Недавно столкнулся с кодом, который понимаю не до конца. Вот пример: int m_Callback(void *pPriv,...

прошу описать алгоритм кода
задача: В этой задаче вам предстоит с помощью компьютера определить самый маленький диаметр,...

Прошу разобраться с написанием кода
Прошу помощи. Написал код по сравнению возрастов из 3-х. Но : &quot;Валится на Integer dimaAge =...

Прошу совета в технологии написания кода
Здравствуйте. Помогите пожалуйста с технологией написания (если я правильно выражаюсь). Я не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru