Подправить код для ШИМ выхода

Sergeyds
Offline
Зарегистрирован: 02.08.2017
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// определение режима соединения и подключение библиотеки RemoteXY 
#define REMOTEXY_MODE__HARDSERIAL

#include <RemoteXY.h>

// настройки соединения 
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 9600


// конфигурация интерфейса  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,5,0,0,0,106,1,6,0,6,
  4,128,53,28,39,5,48,6,7,18,
  5,2,4,128,23,30,59,5,35,22,
  7,18,5,1,2,0,25,14,19,5,
  51,22,22,11,5,2,79,78,0,79,
  70,70,0,2,0,53,39,19,5,53,
  37,22,11,5,2,79,78,0,79,70,
  70,0,2,0,52,14,19,5,41,14,
  19,5,5,2,79,78,0,79,70,70,
  0,131,1,4,51,43,6,6,5,20,
  7,0,1,77,97,110,117,97,108,32,
  99,111,110,116,114,111,108,0,131,0,
  52,51,42,6,32,5,20,7,0,2,
  83,109,97,114,116,32,99,111,110,116,
  114,111,108,0,129,0,5,4,13,5,
  18,14,18,6,8,1,43,50,56,32,
  67,0,129,0,23,37,44,4,16,67,
  40,6,14,1,48,37,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,57,53,37,0,
  129,0,39,16,21,5,39,16,18,6,
  14,1,66,108,97,99,107,111,117,116,
  0,129,0,37,4,19,5,9,20,18,
  6,8,2,83,101,116,116,105,110,103,
  115,0,129,0,3,28,39,4,10,15,
  18,6,8,2,84,101,109,112,101,114,
  97,116,117,114,101,32,99,111,110,116,
  114,111,108,0,129,0,54,33,31,3,
  49,21,18,6,8,2,51,48,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  52,53,0,129,0,4,39,24,4,8,
  25,18,6,8,2,76,105,103,104,116,
  32,99,111,110,116,114,111,108,0 };
  
// структура определяет все переменные вашего интерфейса управления 
struct {

    // input variable
  int8_t slider_2; // =0..100 положение слайдера 
  int8_t slider_1; // =0..100 положение слайдера 
  uint8_t switch_2; // =1 если переключатель включен и =0 если отключен 
  uint8_t switch_1; // =1 если переключатель включен и =0 если отключен 
  uint8_t switch_3; // =1 если переключатель включен и =0 если отключен 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

#define PIN_SWITCH_2 6
#define PIN_SWITCH_1 5
#define PIN_SWITCH_3 7


void setup() 
{
  RemoteXY_Init (); 
  
  pinMode (PIN_SWITCH_2, OUTPUT);
  pinMode (PIN_SWITCH_1, OUTPUT);
  pinMode (PIN_SWITCH_3, OUTPUT);
  
  // TODO you setup code
  
}

void loop() 
{ 
  RemoteXY_Handler ();
  
  digitalWrite(PIN_SWITCH_2, (RemoteXY.switch_2==0)?LOW:HIGH);
  digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);
  digitalWrite(PIN_SWITCH_3, (RemoteXY.switch_3==0)?LOW:HIGH);
  
  // TODO you loop code
  // используйте структуру RemoteXY для передачи данных


}

 

Sergeyds
Offline
Зарегистрирован: 02.08.2017

Хочу управлять напряжением с помощью силового ключа (мосфит). Есть Arduino nano, внешний источник питания и на выходе всего этого DC-DC для регулировки выходого напряжения. Конибудь может дописать конец кода для подключения ардуино нано к силовому ключу через 12 ногу?

 

 

Sergeyds
Offline
Зарегистрирован: 02.08.2017

выход на 12 ногу со slider_1

b707
Онлайн
Зарегистрирован: 26.05.2017

а вы уверены, что достаточно подать на мосфет ШИМ, чтобы все заработало как надо? Схему DC-DC покажите

Sergeyds
Offline
Зарегистрирован: 02.08.2017

предполагаю что сработает, ведь все купил готовыми модуляим, в том числе  DC-DC 

kalapanga
Offline
Зарегистрирован: 23.10.2016

b707 пишет:

а вы уверены, что достаточно подать на мосфет ШИМ, чтобы все заработало как надо? Схему DC-DC покажите

А ещё на 12-й ноге аппаратного ШИМа нет...

Sergeyds
Offline
Зарегистрирован: 02.08.2017
Sergeyds
Offline
Зарегистрирован: 02.08.2017
Sergeyds
Offline
Зарегистрирован: 02.08.2017

Для получения положения слайдера, его достаточно прочитать из соответствующего поля структуры RemoteXY:



  int pos = RemoteXY.slider_1; 

  /*  pos равно положению слайдера, изменяющееся от 0 до 100 */ 

Для управления аналоговым сигналом на выводе PIN микроконтроллера в Arduino IDE можно использовать следующий код:



  analogWrite(PIN, RemoteXY.slider_1 * 2.55); 

 

Sergeyds
Offline
Зарегистрирован: 02.08.2017

Автор предлагает как то с помощью этих строк сделать

kalapanga
Offline
Зарегистрирован: 23.10.2016

Sergeyds пишет:

http://www.prorobot.ru/arduino/nano-v3.php 

вроде есть

https://store.arduino.cc/usa/arduino-nano

PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function.

Sergeyds
Offline
Зарегистрирован: 02.08.2017

Ну значит на 11ю)

kalapanga
Offline
Зарегистрирован: 23.10.2016

Sergeyds пишет:

Автор предлагает как то с помощью этих строк сделать

Правильно предлагает, ну так вставьте их в свой скетч и пользуйтесь.

 

b707
Онлайн
Зарегистрирован: 26.05.2017

Sergeyds пишет:

предполагаю что сработает, ведь все купил готовыми модуляим, в том числе  DC-DC 

Ваш "готовый модуль" DC-DC вообще не предназначен для  управления от Ардуины, там напряжение потенциометром регулируется. Для управления от МК, вам, как минимум, придется подпаятся к управляемому контакту микросхемы на модуле и подать туда сигнал через RC-фильтр. Кроме того, непосредственно ардуиной вы не сможете регулировать выходное напряжение с DC-DC больше чем от 0 до 6.25в

Sergeyds
Offline
Зарегистрирован: 02.08.2017

К DC-DC подключен от внешнего источника питания, ардуина нужна только для управления силовым ключом. На силовом ключе мосфитовском предусмотрен контакт для ШИМ сигнала

Sergeyds
Offline
Зарегистрирован: 02.08.2017

Вот как раз в программировании сосвм ничего не могу, поэтому прошу помочь с этими строчками.

kalapanga
Offline
Зарегистрирован: 23.10.2016

Вам для счастья-то чего ещё не хватает? Уж и строчки нужные у Вас есть. Что копировать-вставить нажать не можете?

Ну как так можно-то? Ну и зачем Вам оно? Наверняка у Вас что-то другое получается - им и займитесь.

Sergeyds
Offline
Зарегистрирован: 02.08.2017

я сначало так и сделал, но компелировать не плолучается, выдает ошибку

 

Sergeyds
Offline
Зарегистрирован: 02.08.2017
/*
   -- Управление --
   
   This source code of graphical user interface 
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 2.3.1 or later version 
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.0.1 or later version;
     - for iOS 1.1.0 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.    
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// определение режима соединения и подключение библиотеки RemoteXY 
#define REMOTEXY_MODE__HARDSERIAL

#include <RemoteXY.h>

// настройки соединения 
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 9600


// конфигурация интерфейса  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,5,0,0,0,106,1,6,0,6,
  4,128,53,28,39,5,48,6,7,18,
  5,2,4,128,23,30,59,5,35,22,
  7,18,5,1,2,0,25,14,19,5,
  51,22,22,11,5,2,79,78,0,79,
  70,70,0,2,0,53,39,19,5,53,
  37,22,11,5,2,79,78,0,79,70,
  70,0,2,0,52,14,19,5,41,14,
  19,5,5,2,79,78,0,79,70,70,
  0,131,1,4,51,43,6,6,5,20,
  7,0,1,77,97,110,117,97,108,32,
  99,111,110,116,114,111,108,0,131,0,
  52,51,42,6,32,5,20,7,0,2,
  83,109,97,114,116,32,99,111,110,116,
  114,111,108,0,129,0,5,4,13,5,
  18,14,18,6,8,1,43,50,56,32,
  67,0,129,0,23,37,44,4,16,67,
  40,6,14,1,48,37,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,57,53,37,0,
  129,0,39,16,21,5,39,16,18,6,
  14,1,66,108,97,99,107,111,117,116,
  0,129,0,37,4,19,5,9,20,18,
  6,8,2,83,101,116,116,105,110,103,
  115,0,129,0,3,28,39,4,10,15,
  18,6,8,2,84,101,109,112,101,114,
  97,116,117,114,101,32,99,111,110,116,
  114,111,108,0,129,0,54,33,31,3,
  49,21,18,6,8,2,51,48,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  52,53,0,129,0,4,39,24,4,8,
  25,18,6,8,2,76,105,103,104,116,
  32,99,111,110,116,114,111,108,0 };
  
// структура определяет все переменные вашего интерфейса управления 
struct {

    // input variable
  int8_t slider_2; // =0..100 положение слайдера 
  int8_t slider_1; // =0..100 положение слайдера 
  uint8_t switch_2; // =1 если переключатель включен и =0 если отключен 
  uint8_t switch_1; // =1 если переключатель включен и =0 если отключен 
  uint8_t switch_3; // =1 если переключатель включен и =0 если отключен 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

#define PIN_SWITCH_2 6
#define PIN_SWITCH_1 5
#define PIN_SWITCH_3 7


void setup() 
{
  RemoteXY_Init (); 
  
  pinMode (PIN_SWITCH_2, OUTPUT);
  pinMode (PIN_SWITCH_1, OUTPUT);
  pinMode (PIN_SWITCH_3, OUTPUT);
  
  // TODO you setup code
  
}

void loop() 
{ 
  RemoteXY_Handler ();
  
  digitalWrite(PIN_SWITCH_2, (RemoteXY.switch_2==0)?LOW:HIGH);
  digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);
  digitalWrite(PIN_SWITCH_3, (RemoteXY.switch_3==0)?LOW:HIGH);
  
  // TODO you loop code
  // используйте структуру RemoteXY для передачи данных


}

int pos = RemoteXY.slider_1; 
  /*  pos равно положению слайдера, изменяющееся от 0 до 100 */ 
  analogWrite(PIN, RemoteXY.slider_1 * 2.55); 

 

Sergeyds
Offline
Зарегистрирован: 02.08.2017

124-126 добавлены

kalapanga
Offline
Зарегистрирован: 23.10.2016

Sergeyds пишет:

я сначало так и сделал, но компелировать не плолучается, выдает ошибку

Так вставляйте сюда то что написали, весь скетч. И копируйте сообщение об ошибке (не картинкой, текстом!). Тогда люди увидят, что Вы что-то сами делаете, подскажут дальше.

Но какие-то основы надо всё-таки заранее освоить.

Sergeyds
Offline
Зарегистрирован: 02.08.2017

Все верно, я в составе команды, работаю над созданием стекла, меняющего прозрачность (все химики), управлять стеклом можно путем подачи на него напряжения 1,8 В, но если мне нужно регулировать его прозрачность мне нужно изменять напряжение от 0 до 1.8 В. Вот это я и пытаюсь сделать

Sergeyds
Offline
Зарегистрирован: 02.08.2017

Код онибки:

exit status 1
expected constructor, destructor, or type conversion before '(' token
 
b707
Онлайн
Зарегистрирован: 26.05.2017

Sergeyds пишет:

124-126 добавлены

свой добавленный код вставьте ДО закрывающей скобки в строке 122

Sergeyds
Offline
Зарегистрирован: 02.08.2017

Спасибо, теперь выдал ошибку 

exit status 1

'PIN' was not declared in this scope
 
после какого именно знака мне указать 11 пин?
b707
Онлайн
Зарегистрирован: 26.05.2017

Sergeyds пишет:

 
после какого именно знака мне указать 11 пин?

зависит от того, как его описывать. Если макросом, то в строке 24, например

#define PIN 11

kalapanga
Offline
Зарегистрирован: 23.10.2016

И всё-таки учите язык. Ваш вопрос уровня таблицы умножения. В следующий раз с такими вопросами Вас могут просто послать...

Sergeyds
Offline
Зарегистрирован: 02.08.2017
/*
   -- Управление --
   
   This source code of graphical user interface 
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 2.3.1 or later version 
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.0.1 or later version;
     - for iOS 1.1.0 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.    
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// определение режима соединения и подключение библиотеки RemoteXY 
#define REMOTEXY_MODE__HARDSERIAL

#include <RemoteXY.h>

// настройки соединения 
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 9600


// конфигурация интерфейса  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,5,0,0,0,106,1,6,0,6,
  4,128,53,28,39,5,48,6,7,18,
  5,2,4,128,23,30,59,5,35,22,
  7,18,5,1,2,0,25,14,19,5,
  51,22,22,11,5,2,79,78,0,79,
  70,70,0,2,0,53,39,19,5,53,
  37,22,11,5,2,79,78,0,79,70,
  70,0,2,0,52,14,19,5,41,14,
  19,5,5,2,79,78,0,79,70,70,
  0,131,1,4,51,43,6,6,5,20,
  7,0,1,77,97,110,117,97,108,32,
  99,111,110,116,114,111,108,0,131,0,
  52,51,42,6,32,5,20,7,0,2,
  83,109,97,114,116,32,99,111,110,116,
  114,111,108,0,129,0,5,4,13,5,
  18,14,18,6,8,1,43,50,56,32,
  67,0,129,0,23,37,44,4,16,67,
  40,6,14,1,48,37,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,57,53,37,0,
  129,0,39,16,21,5,39,16,18,6,
  14,1,66,108,97,99,107,111,117,116,
  0,129,0,37,4,19,5,9,20,18,
  6,8,2,83,101,116,116,105,110,103,
  115,0,129,0,3,28,39,4,10,15,
  18,6,8,2,84,101,109,112,101,114,
  97,116,117,114,101,32,99,111,110,116,
  114,111,108,0,129,0,54,33,31,3,
  49,21,18,6,8,2,51,48,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  32,32,32,32,32,32,32,32,32,32,
  52,53,0,129,0,4,39,24,4,8,
  25,18,6,8,2,76,105,103,104,116,
  32,99,111,110,116,114,111,108,0 };
  
// структура определяет все переменные вашего интерфейса управления 
struct {

    // input variable
  int8_t slider_2; // =0..100 положение слайдера 
  int8_t slider_1; // =0..100 положение слайдера 
  uint8_t switch_2; // =1 если переключатель включен и =0 если отключен 
  uint8_t switch_1; // =1 если переключатель включен и =0 если отключен 
  uint8_t switch_3; // =1 если переключатель включен и =0 если отключен 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

#define PIN_SWITCH_2 6
#define PIN_SWITCH_1 5
#define PIN_SWITCH_3 7


void setup() 
{
  RemoteXY_Init (); 
  
  pinMode (PIN_SWITCH_2, OUTPUT);
  pinMode (PIN_SWITCH_1, OUTPUT);
  pinMode (PIN_SWITCH_3, OUTPUT);
  
  // TODO you setup code
  
}

void loop() 
{ 
  RemoteXY_Handler ();
  
  digitalWrite(PIN_SWITCH_2, (RemoteXY.switch_2==0)?LOW:HIGH);
  digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);
  digitalWrite(PIN_SWITCH_3, (RemoteXY.switch_3==0)?LOW:HIGH);
  
  // TODO you loop code
  // используйте структуру RemoteXY для передачи данных

int pos = RemoteXY.slider_1;
  /*  pos равно положению слайдера, изменяющееся от 0 до 100 */
  analogWrite(11) RemoteXY.slider_1 * 2.55);

}

 

Sergeyds
Offline
Зарегистрирован: 02.08.2017

и вот эти ошибки

C:\Documents and Settings\777\Рабочий стол\серво\project\project.ino: In function 'void loop()':
 
project:123: error: too few arguments to function 'void analogWrite(uint8_t, int)'
 
In file included from sketch\project.ino.cpp:1:0:
 
C:\Documents and Settings\777\Рабочий стол\Управление\Среда Ардуино\arduino-nightly\hardware\arduino\avr\cores\arduino/Arduino.h:138:6: note: declared here
 
 void analogWrite(uint8_t, int);
 
      ^
 
exit status 1
too few arguments to function 'void analogWrite(uint8_t, int)'
b707
Онлайн
Зарегистрирован: 26.05.2017

неправильно вставили номер пина - посмотрите, как было раньше и просто поменяйте переменную PIN на номер.

Sergeyds
Offline
Зарегистрирован: 02.08.2017

Получилось)))))Вам отдельное спасибо)) и всем кто помог)))

b707
Онлайн
Зарегистрирован: 26.05.2017

осваивайте :) мне, как выпускнику менделавки, за вас стыдно :) химиков теперь ВычТеху не учат. что ли?

Sergeyds
Offline
Зарегистрирован: 02.08.2017

Думаю, увидев, что мы сделали Вам не будет больше стдыдно за химиков.

kalapanga
Offline
Зарегистрирован: 23.10.2016

Sergeyds пишет:

Получилось)))))Вам отдельное спасибо)) и всем кто помог)))

Отлично! В шапке сайта есть ссылка на раздел Программирование Найдите там все операторы, которые встретились в Вашем скетче, прочитайте про них. Чтобы не были все эти строчки "китайской грамотой". :)

Sergeyds
Offline
Зарегистрирован: 02.08.2017

Спасибо)