Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2019, 10:18   #1
Anastasia.k13
Новичок
Джуниор
 
Регистрация: 04.06.2019
Сообщений: 2
Вопрос Переделать код с C# под C++

Нужна помощь в переделывания кода с Си шарпа в Си плюсы. Это код для работы машинки с датчиком расстояния на ардуино.
~~~~~
Код:
#include <Servo.h>

#define TRIG 8
#define ECHO 9

#define IN_11  0    // L298N #1 in 1 motor Right Ahead
#define IN_12  1    // L298N #1 in 2 motor Right Ahead
#define IN_13  2    // L298N #1 in 3 motor Right Back
#define IN_14  3    // L298N #1 in 4 motor Right Back

#define IN_21  4    // L298N #2 in 1 motor Left Ahead
#define IN_22  5    // L298N #2 in 2 motor Left Ahead
#define IN_23  6    // L298N #2 in 3 motor Left Back
#define IN_24  7    // L298N #2 in 4 motor Left Back

Servo servo;

int angle = 90;    
int lookLeft = 0; 
int lookRight = 0; 
int lookAhead = 0; 
int timeEcho;  

void setup() {  
   
   servo.attach(10);
  
     pinMode(TRIG, OUTPUT); 
     pinMode(ECHO, INPUT); 
  
     pinMode(IN_11, OUTPUT);
     pinMode(IN_12, OUTPUT);
     pinMode(IN_13, OUTPUT);
     pinMode(IN_14, OUTPUT);
    
     pinMode(IN_21, OUTPUT);
     pinMode(IN_22, OUTPUT);
     pinMode(IN_23, OUTPUT);
     pinMode(IN_24, OUTPUT);

  } 


void goAhead(){ 

        digitalWrite(IN_11, HIGH);
        digitalWrite(IN_12, LOW);

        digitalWrite(IN_13, LOW);
        digitalWrite(IN_14, HIGH);

        digitalWrite(IN_21, LOW);
        digitalWrite(IN_22, HIGH);

        digitalWrite(IN_23, HIGH);
        digitalWrite(IN_24, LOW);
  
  }

void goBack(){ 

        digitalWrite(IN_11, LOW);
        digitalWrite(IN_12, HIGH);

        digitalWrite(IN_13, HIGH);
        digitalWrite(IN_14, LOW);

        digitalWrite(IN_21, HIGH);
        digitalWrite(IN_22, LOW);

        digitalWrite(IN_23, LOW);
        digitalWrite(IN_24, HIGH);
  }

void goRight(){ 

        digitalWrite(IN_11, LOW);
        digitalWrite(IN_12, HIGH);

        digitalWrite(IN_13, HIGH);
        digitalWrite(IN_14, LOW);

        digitalWrite(IN_21, LOW);
        digitalWrite(IN_22, HIGH);

        digitalWrite(IN_23, HIGH);
        digitalWrite(IN_24, LOW);

  }

void goLeft(){

        digitalWrite(IN_11, HIGH);
        digitalWrite(IN_12, LOW);

        digitalWrite(IN_13, LOW);
        digitalWrite(IN_14, HIGH);
        
        digitalWrite(IN_21, HIGH);
        digitalWrite(IN_22, LOW);

        digitalWrite(IN_23, LOW);
        digitalWrite(IN_24, HIGH);
        
  }


void stopRobot(){  

        digitalWrite(IN_11, LOW);
        digitalWrite(IN_12, LOW);

        digitalWrite(IN_13, LOW);
        digitalWrite(IN_14, LOW);
  
        digitalWrite(IN_21, LOW);
        digitalWrite(IN_22, LOW);
      
        digitalWrite(IN_23, LOW);
        digitalWrite(IN_24, LOW);
  
  }

void distanceLeft(){     
  
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
  timeEcho = pulseIn(ECHO, HIGH);
  lookLeft = timeEcho/58;

  }

void distanceAhead(){     
  
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);
    timeEcho = pulseIn(ECHO, HIGH);
  lookAhead = timeEcho/58;

  }

void distanceRight(){        
    
  digitalWrite(TRIG, HIGH);
    delayMicroseconds(10);
    digitalWrite(TRIG, LOW);
    timeEcho = pulseIn(ECHO, HIGH);
    lookRight = timeEcho/58;
  
  }


void loop(){
  
  distanceAhead();
      if(lookAhead<30){
          stopRobot();
          delay(1000);  
          goBack();
          delay(200); 
          stopRobot();
          delay(1000);    
          for(angle=90;angle>=10;angle--){
              servo.write(angle);
              delay(5);
            }
    
      distanceRight();
    delay(100);
      for(angle=10;angle<=170;angle++){
          servo.write(angle);
          delay(5);
        }

    distanceLeft();
    delay(100);
        for(angle=170;angle>=90;angle--){
            servo.write(angle);
            delay(5);
          }
  
    if(lookLeft < lookRight){
    
          goRight();
          delay(250);
          stopRobot();
        }
  
      else{

          goLeft();
          delay(250);
        stopRobot();
        }
       
          }
  
    else{
      goAhead();
      }
  }
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 04.06.2019 в 18:06.
Anastasia.k13 вне форума Ответить с цитированием
Старый 04.06.2019, 10:23   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Это не C#.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.06.2019, 11:51   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,708
По умолчанию

Это похоже на АйДурневский скетч в ейной среде разработки (avr-gcc). Я на нем не писал, но по слухам он близок к С++
https://radiokot.ru/artfiles/6391/

Последний раз редактировалось digitalis; 04.06.2019 в 11:53.
digitalis вне форума Ответить с цитированием
Старый 04.06.2019, 16:41   #4
Anastasia.k13
Новичок
Джуниор
 
Регистрация: 04.06.2019
Сообщений: 2
По умолчанию

спасибо, буду дальше разбираться
Anastasia.k13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделать код Wario Фриланс 1 04.06.2018 09:39
Как переделать код PHP на VBA? Metrologik Microsoft Office Excel 3 31.07.2017 03:02
Переделать код drzod Помощь студентам 9 27.02.2013 14:20
Как переделать код Дмитрий_dz Общие вопросы Delphi 3 17.12.2012 01:50
как переделать? Ольга790 Общие вопросы C/C++ 0 17.05.2012 15:12