PCCar.ru - Ваш автомобильный компьютер


Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Сделай сам

Ответ
 
Опции темы
Старый 10.12.2015, 21:18   #21
skanch
Старший Пользователь
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 51
Город: Санкт-Петербург
Регион: 78, 98
Машина: Mitsubishi Lancer X
Сообщений: 931
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Это ролик https://youtu.be/waMT_I0s6vY

Последний раз редактировалось skanch; 11.10.2016 в 12:27.
skanch на форуме   Ответить с цитированием
Старый 11.12.2015, 02:29   #22
skanch
Старший Пользователь
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 51
Город: Санкт-Петербург
Регион: 78, 98
Машина: Mitsubishi Lancer X
Сообщений: 931
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Это "пациент".
Миниатюры
Нажмите на изображение для увеличения
Название: P_20151128_143158_1.jpg
Просмотров: 157
Размер:	224.8 Кб
ID:	41966   Нажмите на изображение для увеличения
Название: P_20151128_163936.jpg
Просмотров: 162
Размер:	233.1 Кб
ID:	41967   Нажмите на изображение для увеличения
Название: P_20151128_163950.jpg
Просмотров: 159
Размер:	238.3 Кб
ID:	41968   Нажмите на изображение для увеличения
Название: dodge_caliber_22.jpg
Просмотров: 214
Размер:	114.2 Кб
ID:	41969  
skanch на форуме   Ответить с цитированием
Старый 08.02.2016, 21:43   #23
skanch
Старший Пользователь
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 51
Город: Санкт-Петербург
Регион: 78, 98
Машина: Mitsubishi Lancer X
Сообщений: 931
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию Делаем из сервы мотор-редуктор.

При разработке механизма размера 1DIN столкнулся с проблемой подбора моторов для перемещения каретки и подъема монитора. Большинство не подходят по размерам - нужны приводы с габаритами, которые можно "вписать" в окно 34мм шириной. Еще немаловажный момент - усилие, которое развивает такой привод (мотор-редуктор). Если для перемещения по горизонтали достаточно 15 кг/см, то для подъема монитора необходимо уже не менее 30 кг/см и больше. Не так давно попались мне такие сервомоторы для роботов.

Технические характеристики:
Рабочее напряжение: 6.0~7.4в
Скорость работы: 0.18сек/60° / 0.16сек/60°
Макс. момент: 25.8кгс∙см /32.4кгс∙см
Ход: 0~280°
Размер: 43X32X32.5мм
Вес: 73г
Шлиц: 25T
Подшипник: 2 шарикоподшипника
Редуктор: металл
Длина кабеля: 50см
Отверстия крепления: 2.5x21.5мм
Частота работы: 1520мкс/333Hz, 900~2100мкс

Опробовал их на нескольких механизмах в узлах подъема монитора. Усилие с запасом, угол отрабатывают точно (для подъема нужен в пределах 0-110 градусов), ток при нагрузке и напряжении +/-7в не превышает 2,0А. Размер, вес и крепление - можно сказать идеальные.
Но для перемещения каретки по горизонтали нужен сервомотор с постоянным вращением, не ограниченный углом поворота (у этих 0-280 градусов). Решил немного переделать серву под свои "хотелки".
Миниатюры
Нажмите на изображение для увеличения
Название: InSAM_5983.jpg
Просмотров: 723
Размер:	341.3 Кб
ID:	42490  

Последний раз редактировалось skanch; 09.02.2016 в 00:29.
skanch на форуме   Ответить с цитированием
Старый 08.02.2016, 22:14   #24
skanch
Старший Пользователь
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 51
Город: Санкт-Петербург
Регион: 78, 98
Машина: Mitsubishi Lancer X
Сообщений: 931
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Разбираем мотор.



Выпаиваем драйвер и потенциометр ограничения угла поворота.Зачищаем место крепления потенциометра



Для управления мотором буду использовать драйвер TB6612FNG.



При своем размере имеет очень достойные параметры.

"Модуль драйвер на основании чипа TB6612FNG производства компании Toshiba. В отличие от наиболее распространенных на сегодняшний день драйверов на основе чипа L298N,L293D,LB1836M имеет ряд преимуществ таких как : минимальный размер, максимальный выход на канал до 3А, частота ШИМ 100 кГц, температурный контроль. Все это выделяет данный модуль драйвер TB6612FNG из всех имеющихся на сегодняшний день.

Характеристики:

- входное напряжение для двигателей от 4.5 до 13.5 Вольт DC;

- напряжение логики от 2.7 до 5.5 Вольт DC;

- максимальный ток на канал 3А (при длительном использовании рекомендуется установка радиатора), до 2А без радиатора;

- частота ШИМ 100 кГц ;

- встроенная тепловая схема отключения;

- фильтрующий конденсатор питания;

- защита от обратного тока;

- рабочая температура от (-20) до 80 градусов Цельсия;

Размер:20 x 17 мм.

Вес: до 20 гр."

Впаиваем "гребенку" с пинами.






Примерка в корпусе мотора.



Это с крышкой.



Остается припаять нужные провода и подключить к Ардуино. Ну это еще в процессе...

"Питаться" сервы будут от общеизвестных DC-DC преобразователей



Миниатюры
Нажмите на изображение для увеличения
Название: 1SAM_6058.jpg
Просмотров: 742
Размер:	238.0 Кб
ID:	42494   Нажмите на изображение для увеличения
Название: 1SAM_6061.jpg
Просмотров: 749
Размер:	139.3 Кб
ID:	42495   Нажмите на изображение для увеличения
Название: 1SAM_6001.jpg
Просмотров: 739
Размер:	263.4 Кб
ID:	42500   Нажмите на изображение для увеличения
Название: 1SAM_6002.jpg
Просмотров: 729
Размер:	260.9 Кб
ID:	42501   Нажмите на изображение для увеличения
Название: 1SAM_6054.jpg
Просмотров: 736
Размер:	314.6 Кб
ID:	42514  

Нажмите на изображение для увеличения
Название: 1SAM_6057.jpg
Просмотров: 737
Размер:	365.1 Кб
ID:	42515   Нажмите на изображение для увеличения
Название: 1SAM_6074.jpg
Просмотров: 720
Размер:	242.8 Кб
ID:	42518   Нажмите на изображение для увеличения
Название: 1SAM_6075.jpg
Просмотров: 712
Размер:	146.7 Кб
ID:	42519   Нажмите на изображение для увеличения
Название: 1SAM_6065.jpg
Просмотров: 708
Размер:	160.3 Кб
ID:	42530  
Изображения
 

Последний раз редактировалось skanch; 09.02.2016 в 19:30.
skanch на форуме   Ответить с цитированием
Старый 08.02.2016, 22:54   #25
skanch
Старший Пользователь
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 51
Город: Санкт-Петербург
Регион: 78, 98
Машина: Mitsubishi Lancer X
Сообщений: 931
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Это предварительная примерка на плате управления.




Миниатюры
Нажмите на изображение для увеличения
Название: 1SAM_6079.jpg
Просмотров: 729
Размер:	322.2 Кб
ID:	42511   Нажмите на изображение для увеличения
Название: 1SAM_6081.jpg
Просмотров: 746
Размер:	335.6 Кб
ID:	42512   Нажмите на изображение для увеличения
Название: 1SAM_6020.jpg
Просмотров: 727
Размер:	253.9 Кб
ID:	42520   Нажмите на изображение для увеличения
Название: 1SAM_6023.jpg
Просмотров: 722
Размер:	268.3 Кб
ID:	42522  

Последний раз редактировалось skanch; 09.02.2016 в 00:41.
skanch на форуме   Ответить с цитированием
Старый 10.02.2016, 22:42   #26
skanch
Старший Пользователь
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 51
Город: Санкт-Петербург
Регион: 78, 98
Машина: Mitsubishi Lancer X
Сообщений: 931
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Заготовка для каретки.





Миниатюры
Нажмите на изображение для увеличения
Название: 1SAM_6110.jpg
Просмотров: 692
Размер:	319.8 Кб
ID:	42555   Нажмите на изображение для увеличения
Название: 1SAM_6111.jpg
Просмотров: 693
Размер:	321.2 Кб
ID:	42556   Нажмите на изображение для увеличения
Название: 1SAM_6112.jpg
Просмотров: 698
Размер:	318.0 Кб
ID:	42557   Нажмите на изображение для увеличения
Название: 1SAM_6114.jpg
Просмотров: 703
Размер:	339.5 Кб
ID:	42558   Нажмите на изображение для увеличения
Название: 1SAM_6116.jpg
Просмотров: 703
Размер:	277.3 Кб
ID:	42559  

skanch на форуме   Ответить с цитированием
Старый 06.03.2016, 11:42   #27
skanch
Старший Пользователь
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 51
Город: Санкт-Петербург
Регион: 78, 98
Машина: Mitsubishi Lancer X
Сообщений: 931
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Цитата:
Сообщение от Serdj Посмотреть сообщение
неплохо было бы добавить библиотеку irremote...
Я совсем не программист. "Нажал-поехало-открыл" еще смогу написать. Все, что связано с Eeprom, прерываниями и прочим для меня сложно. Но по существу вопроса- есть вот такой скетч в свободном доступе. В шапке ссылка на первоисточник. Возможно это то, что нужно?
Скопировано без изменений.
PHP код:
/*             v.01 Arduino servo IR EEPROM speed ИК пультом  
 ****************************
 урок от Дмитрия Осипова. http://www.youtube.com/user/d36073?feature=watch
 v.01 Arduino servo IR EEPROM speed ИК пультом
 Version 0.1-2013/08/19
 -----------------------------
 изменения; в Version 0.1-2013/
 1. 
 2. 
 ------------------------------
 идеология;
 управление двумя servo любым (ИК) инфракрасным пультом,для управления задействуем 5 кнопок  ИК пульта,
 4 кнопки для плавного поворота вправо или влево, а одну кнопку для регулировки скорости поворота.
 Также задействуем ОЗУ EEPROM (энергонезависимая память): (данные сохраняются при отключении питания). 
 То бишь после включения питания, градус поворота servo, и установленная скорость поворота, будут теми же
 какие были на момент отключения. 
 
 внимание, при первой заливки sketch, Arduino будет читать значение скорости из ячейки №3 ОЗУ.
 ОЗУ скорей всего у вас девственный, поэтому нужно сначала нажать на кнопку ИК пульта управления скоростью,
 чтоб в ячейке №3 появились данные. В следующих заливках sketch это делать не нужно.
 
 Рекомендую использовать конденсаторы для сглаживания электрических колебаний которые создают servo во время работы.
 
 
 Также рекомендую отключать servo от Arduino в момент заливки sketch, USB компьютера может не потянуть нагрузку,
 servo потребляют много тока.
 
 ------------------------------------------ 
 скетч sketch:  v.01 Arduino servo IR EEPROM speed ИК пультом  
 
 ================================ 
 что нам понадобиться. 
 Аппаратное:
 1.servo
 2. любая Arduino
 3. ИК инфракрасный приёмник 
 4. Светодиоды нужны только для визуального контроля за процессом. 
 5. конденсаторы
 --------------------------------
 программное:
 Библиотеки.
 
 1.IRremote, библиотека для работы с ИК сигналом.
 Скачать библиотеку IRremote для ИК пульта
 https://disk.yandex.ru/public/?hash=yNz1au3lm3/yyMHOYtnZ2UGSf19wTvYBZnkxmhW4Xt0%3D
 
 IRremote эта библиотека кажется по новее будет
 http://yadi.sk/d/0jIS1tfw6tbb7
 
 https://github.com/shirriff/Arduino-IRremote
 
 =======================================================
 подробную видео инструкцию выложу здесь
 
 ++++++++++++++++++++++++++++++ 
 Вспомогательные видео обзоры, скетчи.....
 
 скетч arduino чтобы узнать код кнопки ИК пульта
 sketch arduino buttons on the remote to learn the code
 https://disk.yandex.ru/public/?hash=KzLtuC1ljISPaCoXw03D6mbiKea8spktcWL5QKJHGRQ%3D 
 
 4/6 как ? узнать код - кнопки своего ИК пульта
 http://www.youtube.com/watch?v=InZuGntH_wk
 
 
 v.01 Arduino IR Управление с ИК пульта в режиме удержания кнопки
 https://www.youtube.com/watch?v=AjIASUNiWkY
 
 
 Самый дешевый Arduino Uno 5$ Minimal Atmega328 without Arduino Board
 http://www.youtube.com/watch?v=joSc-AT8o5k
 
 v.01 Arduino управление servo любым ИК пультом Control IR + speed
 http://www.youtube.com/watch?v=KYNoWX4yG8s&feature=c4-overview&list=UU7aH7HVqDvwB1xNHfSl-fDw
 
 
 */


#include <EEPROM.h> // подключаем библиотеку EEPROM 
#include <Servo.h> // подключаем библиотеку для Servo
#include <IRremote.h> // подключаем СКАЧЕННУЮ библиотеку IRremote для ИК пульта


int RECV_PIN 2//вход ИК инфракрасного приемника 
IRrecv irrecv(RECV_PIN);
decode_results results;

Servo dimkaservo_1//даём имена servo
Servo dimkaservo_2;

//Pin для светодиодов,светодиоды для визуального контроля за процессом
int ledPin_1 15//PIN 15, на Arduino Uno, Atmega328 (A1)
int ledPin_2 16;
int ledPin_3 17;
int ledPin_4 18;

// 1. для сглаживания пульсирующего ИК сигнала.
// 2. для отключения светодиодов ledPin после пропадания ИК сигнала, без использования delay.
int timer_ledPIN 14//индикация таймера //PIN 14, на Arduino Uno, Atmega328 (A0)

// (спидометр)для визуального контроля яркостью светодиода, за изменением (увеличения или уменьшения) скорости работы servo.
int speed_PWM_ledPin 5;

// переменные для плавного вращения servo,чтоб не использовать delay.
// промежуточная переменная для хранения (увеличенного диапазона от 0 до 30000)значений (увеличения или уменьшения)PWM,
// с последующей конвертации в переменную(val) диапазон градусов поворота доступных для servo.
int a_1;
int a_2;

// переменные для экономии ресурсов ОЗУ EEPROM 
int e_1;
int e_2;

//переменные для конвертации (увеличенного диапазона значений от 0 до 30000) (a_1;),(a_2;),в значения требуемые для поворота servo.
int val_1
int val_2;

//переменная для (увеличения или уменьшения)скорости поворота servo.
int speed_PWM;

//переменная eventTime, для паузы,  вместо delay,будем использовать функцию millis.
unsigned long eventTime=0;

void setup() {              
  
// Serial.begin(9600);
  
irrecv.enableIRIn(); // включить ИК приёмник

  
dimkaservo_1.attach(9); // серво подключён на цифровой вход (pin 9)
  
dimkaservo_2.attach(10); // серво подключён на цифровой вход (pin 10)

  
pinMode(ledPin_1OUTPUT);
  
pinMode(ledPin_2OUTPUT);
  
pinMode(ledPin_3OUTPUT);
  
pinMode(ledPin_4OUTPUT);


  
pinMode(timer_ledPINOUTPUT);

  
pinMode(speed_PWM_ledPinOUTPUT);

  
// после подключения питания или перезагрузки, читаем значение из ячейки №1 ОЗУ 
  // умножаем это значение на *118 и записываем его в переменную a_1
  // делаем это в void setup то бишь только один раз в момент подключения питания 
  
a_1=EEPROM.read(1)*118;
  
a_2=EEPROM.read(2)*118;

  
// также записываем  значение из ячейки №3 ОЗУ, в переменную speed_PWM отвечающую за скорость поворота servo
  
speed_PWM=EEPROM.read(3);
}

void loop() {
  
// По приёму и обработки сигнала от ИК инфракрасного пульта. 
  //Мой опыт работы с ИК пультами выявил разные принципы отправки ИК сигналов кодов у разных производителей техники (пультов) 
  //мне нужно, чтоб система могла работать и в режиме удержания кнопки, для этого нужно постоянно слать ИК код с пульта
  // пока кнопка на пульте нажата.
  //Увы, есть пульты которые шлют код только один раз, в момент нажатия кнопки.  
  // послав 1 код, пульт далее продолжает, слать (в момент удержания кнопки), (назовем его (пустой инфракрасный сигнал).
  // после отпускания кнопки (пустой инфракрасный сигнал) исчезает.
  // Задача такая, после приёма определённого кода кнопки,сразу перехватывать идущий за ним (кодом), (пустой инфракрасный сигнал)
  // и считать его, (пустой инфракрасный сигнал), за код кнопки. 
  //после пропадания (пустого инфракрасного сигнала), будем считать, что код перестал слаться

  // Эта конструкция нужна чтобы. 
  //1.после приёма определённого кода кнопки,перехватывать  (пустой инфракрасный сигнал)
  //2.конвертировать пульсирующий (-) с (ИК) преемника сигнал в постоянный.
  //После появления и пропадания сигнала, состояние сразу не меняется! а ждет  100 миллисекунд.
  //Если 100 миллисекунд не прошло, и поступил еще один ИК сигнал с пульта, тогда таймер заново запускается на 100 миллисекунд.

  //Проще говоря, пока кнопка на ИК пульте нажата timer_ledPIN остается HIGH
  //если кнопка на пульте отпущена, LOW.



  // Читаем состояние ноги у (ИК) преемника. В момент приема данных, у (ИК) 
  //приемника на выходе появляется пульсирующий (-)отрицательный сигнал


  
if (digitalRead(RECV_PIN) == LOW)     
    
eventTime=millis(),digitalWrite(timer_ledPINHIGH);  
  if(
millis()-eventTime>100digitalWrite(timer_ledPINLOW),digitalWrite(ledPin_1LOW),digitalWrite(ledPin_2LOW),
  
digitalWrite(ledPin_3LOW),digitalWrite(ledPin_4LOW);


  
//если ledPin_1) ==, выставляем ограничение для переменной(a_1) до (&& a_1<30000).и Начинаем увеличивать
  // значения переменной(a_1) прибавляем на значение переменной speed_PWM,
  //и также выставляем ограничение при убывании (&& a_1>0)
  
if(digitalRead(ledPin_1) == HIGH && a_1<30000  a_1=a_1+speed_PWM;
  if(
digitalRead(ledPin_2) == HIGH && a_1>0  a_1=a_1-speed_PWM;


  
//читаем значение (a_1) и конвертируем его в значение val_1, то бишь в значение поворота в градусов доступных для servo.
  // правильно было бы конвертировать в, (от 0, до 180) градусов, но мои дешёвые servo доходя до краёв,
  //начинают дребезжать,поэтому я кастрировал их (края) по 10 градусов (10, 170);)
  
val_1 a_1;           
  
val_1 map(val_103000010170);     // scale it to use it with the servo (val_1ue between 10 and 170) 
  
dimkaservo_1.write(val_1);                  // sets the servo position according 

  //делаем тоже самое и для dimkaservo_2
  
if(digitalRead(ledPin_3) == HIGH && a_2<30000  a_2=a_2+speed_PWM;
  if(
digitalRead(ledPin_4) == HIGH && a_2>0  a_2=a_2-speed_PWM;

  
val_2 a_2;           
  
val_2 map(val_203000010170);     
  
dimkaservo_2.write(val_2);  //записываем значения  val_2 в dimkaservo_2     


    // эта конструкция отвечает за запись положения градусов servo в ОЗУ EEPROM. 
  // Можно было бы сделать так if(digitalRead(ledPin_1) == HIGH || digitalRead(ledPin_2)== HIGH)EEPROM.write(1, a_1/118);.
  // В документации на ATMEGA328P-PU указано, количество записи и чтения в ячейку ОЗУ гарантировано не более 100.000 раз,
  // поэтому будем экономить ОЗУ, то бишь записывать не постоянно в (момент движения) изменения градусов servo, 
  //а только тогда, когда servo остановилась.
  //когда кнопка №1 или №2 на ИК пульте нажата if(digitalRead(ledPin_1) == HIGH || digitalRead(ledPin_2)== HIGH)
  // фиксируем это событие в переменную e_1 и записываем в неё =1; (e_1=1;)
  // когда кнопку №1 И №2 отпустили, то бишь servo остановилась //(ledPin_1) == LOW && digitalRead(ledPin_2)== LOW//
  // и && e_1==1 то бишь перед тем как servo остановилась она была включена,
  //записываем в ячейку №1 EEPROM значение переменной a_1.
  // Так как ячейка EEPROM может хранить значения от (0 до 255), а диапазон значений переменной a_1
  //от (1 до 30.000), то перед записью в ячейку №1, делим значение переменной a_1 на 118  //(1, a_1/118)//
  // и меняем значение переменной e_1 на 0 // ,e_1=0;// 

  
if(digitalRead(ledPin_1) == HIGH || digitalRead(ledPin_2)== HIGH)e_1=1;
  if(
digitalRead(ledPin_1) == LOW && digitalRead(ledPin_2)== LOW && e_1==1)EEPROM.write(1a_1/118),e_1=0;

  if(
digitalRead(ledPin_3) == HIGH || digitalRead(ledPin_4)== HIGH)e_2=1;
  if(
digitalRead(ledPin_3) == LOW && digitalRead(ledPin_4)== LOW && e_2==1)EEPROM.write(2a_2/118),e_2=0;

  
//Serial.println(EEPROM.read(1));




  // Эта часть отвечает за приём и обработку ИК кодов
  // здесь считываем коды от ИК пульта



  // У моего пульта при нажатии на одну и ту же кнопку, могут отсылаться два разных (КОДА) сигнала,  чтобы обойти эту проблему
  //я использовал Логический оператор "или" (||) if (results.value == 0x1000809 || results.value == 0xF7283C77
  // Теперь неважно какой код отправлен  с кнопки пульта, первый или второй
  // Если ваша кнопка пульта не страдает раздвоением личности, можете написать так if (results.value == 0x1000809 
  //также мною замечено при использовании разных ИК приемников, частотой 36,или 38, кГц, библиотека IRremote
  // выдает Разные коды.
  //можно сделать 4 "или" (||), чтобы можно было управлять с двух разных ИК пультов

  //ВАЖНО !!! (1000809) это код кнопки №1 - моего (ИК)! (инфракрасного пульта)!, -
  //-у вашего пульта будет другой код, замените на свой!

  
if (irrecv.decode(&results)) {
    if(
digitalRead(timer_ledPIN) == HIGH && (results.value == 0x1000809 || results.value == 0xF7283C77))digitalWrite(ledPin_1HIGH);  
    if(
digitalRead(timer_ledPIN) == HIGH && (results.value == 0x1008889 || results.value == 0x757FB4DF))digitalWrite(ledPin_2HIGH);

    if(
digitalRead(timer_ledPIN) == HIGH && (results.value == 0x1004849 || results.value == 0xB33B4597))digitalWrite(ledPin_3HIGH);  
    if(
digitalRead(timer_ledPIN) == HIGH && (results.value == 0x100C8C9 || results.value == 0x3C03E507))digitalWrite(ledPin_4HIGH);



    
//эта кнопка пульта для (увеличения или уменьшения)скорости поворота servo.
    // начинаем увеличивать скорость на одну позицию speed_PWM++;
    // и ставим ограничение на количество скоростей if (speed_PWM > 51)
    // дойдя до 51 скорости,сбрасываемся на первую скорость > 51)speed_PWM=1;
    // записываем в ячейку №3 EEPROM  значение speed_PWM



    
if(digitalRead(timer_ledPIN) == HIGH && (results.value == 0x1002829 || results.value == 0xE705551F))
      
speed_PWM=speed_PWM+1,EEPROM.write(3,speed_PWM);
    if (
speed_PWM 51)speed_PWM=1;
    
//Serial.println(EEPROM.read(3));

    //для визуального контроля за состоянием скоростной коробки передач (спидометр),используем светодиод speed_PWM_ledPin
    //(увеличивая или уменьшая)PWM сигнал (analogWrite) "записываем в светодиод" значения от переменной speed_PWM,
    // для контрастности изменений в яркости, умножаем speed_PWM на 5  (speed_PWM*5)

    
analogWrite(speed_PWM_ledPin,speed_PWM*5);
    
//Serial.println(speed_PWM);

    
irrecv.resume(); 
  }


// уникальность этого sketch в том, что не используется ни одного delay();.
// Благодаря этому, значение (плавность поворота servo) высокое. 
// Есть возможность параллельно выполнять в постоянном режиме другие процессы. 
skanch на форуме   Ответить с цитированием
Старый 27.03.2016, 21:30   #28
skanch
Старший Пользователь
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 51
Город: Санкт-Петербург
Регион: 78, 98
Машина: Mitsubishi Lancer X
Сообщений: 931
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Проект получил продолжение - пришли компоненты для планшета ipad mini.
Чехол -ZAGG rugged book.
Беспроводная подзарядка PLESON-C180.
Приемник беспроводной подзарядки.
Комплект магнитов.

Чехол оказался достаточно массивным - толстая мягкая резина, а в середине жесткий пластик.

Блок подзарядки я сразу "препарировал". Внешнее кольцо на выброс-бесполезная деталь и вес не маленький. Конструкция корпуса удачная для моих целей - внедрение в платформу будет не сложным.

Магниты обычные - тонкие и мощные.
Миниатюры
Нажмите на изображение для увеличения
Название: WP_20160327_19_36_04_Rich_LI.jpg
Просмотров: 128
Размер:	212.0 Кб
ID:	43204   Нажмите на изображение для увеличения
Название: WP_20160327_19_36_52_Rich_LI.jpg
Просмотров: 120
Размер:	223.9 Кб
ID:	43205   Нажмите на изображение для увеличения
Название: WP_20160327_19_39_41_Rich_LI.jpg
Просмотров: 123
Размер:	166.6 Кб
ID:	43206   Нажмите на изображение для увеличения
Название: WP_20160327_19_42_17_Rich_LI.jpg
Просмотров: 414
Размер:	234.0 Кб
ID:	43207   Нажмите на изображение для увеличения
Название: WP_20160327_19_43_14_Rich_LI.jpg
Просмотров: 410
Размер:	225.4 Кб
ID:	43208  

Нажмите на изображение для увеличения
Название: WP_20160327_20_18_18_Rich_LI.jpg
Просмотров: 126
Размер:	174.3 Кб
ID:	43209   Нажмите на изображение для увеличения
Название: WP_20160327_20_19_16_Rich_LI.jpg
Просмотров: 120
Размер:	151.5 Кб
ID:	43210   Нажмите на изображение для увеличения
Название: WP_20160327_20_20_30_Pro_LI.jpg
Просмотров: 121
Размер:	188.0 Кб
ID:	43211   Нажмите на изображение для увеличения
Название: WP_20160327_20_20_55_Pro_LI.jpg
Просмотров: 111
Размер:	155.6 Кб
ID:	43212  

Последний раз редактировалось skanch; 27.03.2016 в 22:06.
skanch на форуме   Ответить с цитированием
Старый 27.03.2016, 21:44   #29
skanch
Старший Пользователь
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 51
Город: Санкт-Петербург
Регион: 78, 98
Машина: Mitsubishi Lancer X
Сообщений: 931
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

В этом механизме управление наклоном планшета в открытом состоянии планирую сделать от потенциометра. Но столкнулся с небольшой проблемой - после выставления угла потенциометром серва некоторое время "дрожит" (у серв это бывает и называется "jitter"). Сначала использовал обычный "переменник", купленный на рынке . С ним "jitter" был очень существенный. Поменял на "импортный" и взял шнурок от USB кабеля с фильтром - "дрожание" есть, но совсем небольшое и по времени пару секунд. Оба "переменника" с угольным напылением резистивного слоя. Решил попробовать кермет. Сегодня приобрел такой, но еще не экспериментировал. Надеюсь это он...
Миниатюры
Нажмите на изображение для увеличения
Название: WP_20160327_19_15_58_Rich_LI.jpg
Просмотров: 106
Размер:	230.2 Кб
ID:	43213   Нажмите на изображение для увеличения
Название: WP_20160327_19_15_19_Rich_LI.jpg
Просмотров: 109
Размер:	232.6 Кб
ID:	43214   Нажмите на изображение для увеличения
Название: WP_20160327_19_13_28_Rich_LI.jpg
Просмотров: 109
Размер:	164.3 Кб
ID:	43215   Нажмите на изображение для увеличения
Название: WP_20160327_19_23_43_Rich_LI.jpg
Просмотров: 114
Размер:	176.0 Кб
ID:	43216  
skanch на форуме   Ответить с цитированием
Старый 28.03.2016, 22:52   #30
skanch
Старший Пользователь
 
Аватар для skanch
 
Регистрация: 19.01.2010
Возраст: 51
Город: Санкт-Петербург
Регион: 78, 98
Машина: Mitsubishi Lancer X
Сообщений: 931
skanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant futureskanch has a brilliant future
По умолчанию

Потенциометр кермет решил проблему- дрожание полностью исчезло.

Последний раз редактировалось skanch; 10.10.2016 в 07:41.
skanch на форуме   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 01:24.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Яндекс.Метрика