Два скетча в одном проекте

Исмаил
Offline
Зарегистрирован: 13.03.2021

Всем привет ,я еще новичок ,я начал заниматся проектом ,где есть скетчи "ultrasonic" и "knob" (servo) ,идея в том ,что есть сервопривод ,управляемый переменным резистором,на нем закреплен ультразвукавой датчик расстояния ,это типо сигнализация которая движется ,так вот ,я соединил эти скетчи :

#include <Ultrasonic.h>
#define trigPin 10
#define echoPin 9
 
 
 
#define buzzer 8
 
int sound = 500;
int distance = 0;
 
Ultrasonic ultrasonic(trigPin, echoPin);
 
void setup() {
  
  
  pinMode(buzzer, OUTPUT);
}
 
void loop() {
  distance = ultrasonic.distanceRead();
 
  if (distance < 30) {
      
  }
  else {
      
  }
  
  if (distance < 15) {
    
  }
  else {
   
  }
  
  if (distance < 30) {
    
    sound = 1000;
  }
  else {
   
  }
 
  if (distance > 30){
    noTone(buzzer);
  }
  else {
    tone(buzzer, sound);
  }
  delay(100);
}
 
 
#include <Servo.h>
 
Servo myservo;  
 
int potpin = 0;  
int val;    
 
void setup() {
 
  myservo.attach(9);  
}
 
void loop() {
  val = analogRead(potpin);           
  val = map(val, 0, 1023, 0, 180);     
  myservo.write(val);                
  delay(15);                          
}
 
В данном скетче есть мусор ,но не обращайте на это внимание ,при компиляции выдает ошибку - redefinition of 'void setup()' ,и я так понял что нельзя использовать void setup и void loop два раза в одном скетче .Так вот ,как мне поступить? Сразу говорю ,использовать два ардуино не хочу ,да и не могу .Можете прислать правильный код или сказать в чем ошибка и как ее исправить 
 

 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

700р можешь прислать?

Исмаил
Offline
Зарегистрирован: 13.03.2021

нет 

 

-NMi-
Offline
Зарегистрирован: 20.08.2018

Клей "момент" или суперклей афигенно склеивайут скеччи !!!

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Исмаил пишет:

Можете прислать правильный код...

Вот и я не могу. 
Исмаил
Offline
Зарегистрирован: 13.03.2021

К сожалению ,у меня в клейе говнорицепты 

-NMi-
Offline
Зарегистрирован: 20.08.2018

Исмаил пишет:

 
 
и я так понял что нельзя использовать void setup и void loop два раза в одном скетче .Так вот ,как мне поступить?

 

Абзываш их void setup_адын и void loop_два  и усё, мажешЪ клеем и склеиваешь.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

можно термосопли и синюю изоленту

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

Исмаил пишет:
в клейе говнорицепты 

Ситуация безнадежная

Исмаил
Offline
Зарегистрирован: 13.03.2021

Выдает "Ошибка компиляции для платы Arduino Uno."

-NMi-
Offline
Зарегистрирован: 20.08.2018

 Эврика !!!            Спермоклей!!!

-NMi-
Offline
Зарегистрирован: 20.08.2018

Исмаил пишет:

Выдает "Ошибка компиляции для платы Arduino Uno."

В компиляторе масло есть? Щуп масляный проверял?

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

-NMi- пишет:

В компиляторе масло есть? Щуп масляный проверял?

С чего бы там масло то было? Там тормозуха у всех залита. 

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

Исмаил, зря тратите время, это ТАК не работает

Исмаил
Offline
Зарегистрирован: 13.03.2021

А как работает?

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

Исмаил пишет:

А как работает?

Самый быстрый способ описан в #1

-NMi-
Offline
Зарегистрирован: 20.08.2018

Даже клеем пользоваццо не могут, ......

 

 

#include <Servo.h>

#include <Ultrasonic.h>
#define trigPin 10
#define echoPin 9
#define buzzer 8
 
 
int sound = 500;
int distance = 0;
 
Ultrasonic ultrasonic(trigPin, echoPin);
 
void setup() {
 
Servo myservo;  
 
int potpin = 0;  
int val;  
  myservo.attach(9);
  pinMode(buzzer, OUTPUT);
}
 
void loop() {
  distance = ultrasonic.distanceRead();
 
  if (distance < 30) {
      
  }
  else {
      
  }
  
  if (distance < 15) {
    
  }
  else {
   
  }
  
  if (distance < 30) {
    
    sound = 1000;
  }
  else {
   
  }
 
  if (distance > 30){
    noTone(buzzer);
  }
  else {
    tone(buzzer, sound);
  }
 
val = analogRead(potpin);           
  val = map(val, 0, 1023, 0, 180);     

  myservo.write(val);  

 
delay(100);
}
 
 
 
 
 
 
 
 

Йопта .....

 

Исмаил
Offline
Зарегистрирован: 13.03.2021

Спасибо ,но выдает 'val' was not declared in this scope

 
-NMi-
Offline
Зарегистрирован: 20.08.2018

-NMi- пишет:

Даже клеем пользоваццо не могут, ......

 

 

#include <Servo.h>

#include <Ultrasonic.h>
#define trigPin 10
#define echoPin 9
#define buzzer 8
 
 
int sound = 500;
int distance = 0;
int potpin = 0;  
int val;
 
Ultrasonic ultrasonic(trigPin, echoPin);
 
void setup() {
 
Servo myservo;  
 
  myservo.attach(9);
  pinMode(buzzer, OUTPUT);
}
 
void loop() {
  distance = ultrasonic.distanceRead();
 
  if (distance < 30) {
      
  }
  else {
      
  }
  
  if (distance < 15) {
    
  }
  else {
   
  }
  
  if (distance < 30) {
    
    sound = 1000;
  }
  else {
   
  }
 
  if (distance > 30){
    noTone(buzzer);
  }
  else {
    tone(buzzer, sound);
  }
 
val = analogRead(potpin);           
  val = map(val, 0, 1023, 0, 180);     

  myservo.write(val);  

 
delay(100);
}
 
 
 
 
 
 
 
 

Йопта .....

 

Да, там точно ТОРМОЗУХА!!! в компилясторе !!!

-NMi-
Offline
Зарегистрирован: 20.08.2018

Чо, скомпилировалось # 18 ???

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

-NMi- пишет:

Чо, скомпилировалось # 18 ???

клей сохнет...

Исмаил
Offline
Зарегистрирован: 13.03.2021

Давайте закроем тему на счет клея и откроем тему на счет программы пожалуйста 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Я увлекшимся напоминаю, что мы договаривались десятки раз НЕ ОТВЕЧАТЬ на посты с неправильно вставленным кодом! И зачем вы общаетесь с данным новичком? Если он не дал себе труд прочесть, как правильно вставлять код?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Исмаил пишет:

Давайте закроем тему на счет клея и откроем тему на счет программы пожалуйста 

А давайте, лучше, обе закроем :-(

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Исмаил пишет:

Всем привет ,я еще новичок ,я начал заниматся проектом ,где есть скетчи "ultrasonic" и "knob" (servo) ,идея в том ,что есть сервопривод ,управляемый переменным резистором,на нем закреплен ультразвукавой датчик расстояния ,это типо сигнализация которая движется ,так вот ,я соединил эти скетчи :

Исмаил, я думаю, Вы уже поняли, почему тема вызвала столько глума. Если "нет", поясняю: Вы неправильно назвали тему.

В одном проекте, естественно, может использоваться несколько скетчей - по числу используемых Ардуинок. Я надеюсь, что не удивил Вас сообщением, что в сложных проектах могут использоваться более одного контроллера.

Правильно Ваша тема должна бы называться "Как объединить два скетча в один". Но беда в том, что тем с подобным название на данном форуме уже десятки, и всем присутствующим уже давно надоело отвечать на вопросы новичков одно и то же.

Вкратце: в общем случае объединить два скетча в один невозможно без очень существенно переработки каждого из скетчей. Как правило, проще всего написать новый скетч с нуля. Вот в этом направлении я Вам и предлагаю двигаться. Т.е. начать с изучения Ардуино. Если же этот путь кажется Вам слишком долгим (грубая оценка - 2 года), то можете разместить заказ в платном разделе "Ищу исполнителя". Третий вариант - забыть об Ардуино и больше никогда о нем не вспоминать.