roboforum.ru

Технический форум по робототехнике.

Вопросы новичка.

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Re: Вопросы новичка.

Сообщение dimamichev » 10 фев 2017, 15:31

Ещё конденсаторы помогают...
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение dimamichev » 12 фев 2017, 19:19

Пробовал ШИМ на группах светодиодов (по схеме), так сказать в противоход друг другу. Две группы глазков рядом... разницы визуально в яркости свечения что 50 на 50, что 30 на 70 не увидел (а в симуляторе на экране компа по другому было). Странно всё это... Буду пробовать на своих любымых трубочках от коктейля (верхняя картинка), может там будет перелив света?..
Вложения
свечение.JPG
схема 2.jpg
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение dimamichev » 16 фев 2017, 14:53

Сейчас мастерю программку под свою старую конструкцию ночника "Три цвета" по новой схеме. Возник вопрос (наивный) можно выходы как то переводить в высокоимпендансное состояние?
Вложения
схема 2.jpg
ACDSee BMP Image.jpg
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Dmitry__ » 16 фев 2017, 15:05

Можно, программируй их на вход.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Вопросы новичка.

Сообщение dimamichev » 16 фев 2017, 19:39

Понял...параллельно возник ещё вопрос (с ходу ответ не находится)- а сколько плата потребляет на холостом ходу?

Добавлено спустя 2 минуты 11 секунд:
А то стал задумываться об автономности питания поделок...
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Madf » 16 фев 2017, 23:33

всё как обычно, контроллер можно глянуть в датащит (в районе 10 мА, зависит от частоты и режимов используемой переферии)
а обвес считаем отдельно, если много светоедов, то кушать будет не мало (ну и от алгоритма управления будет зависеть)
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Вопросы новичка.

Сообщение dimamichev » 19 фев 2017, 10:11

Возник вопрос (никак с кубом не успокоюсь см. схему): как это другой народ аналоговые входы цифровыми выходами делает?
Вложения
Capture.PNG
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Madf » 19 фев 2017, 11:05

Это как раз тот самый случай, когда конструктор впаривают как законченное устройство, игнорируя реальное положение вещей.
А реальность такова, что это не только аналоговые входы/выходы:

Изображение

Так понятнее?
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Вопросы новичка.

Сообщение dimamichev » 19 фев 2017, 11:47

Значит вне рамок команд Ардуино есть команды переиначивающие вход на выход? И ещё попутно: заругался при проверке "загрузчик"... не понимает x1,x2..?
Код: Выделить всёРазвернуть
for (i=0;i<=5;i=i+1) 
            {
            xi=analogRead(Ai);
            yi=map(xi, 0, 1023, 0, 9);
             
             }
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Angel71 » 19 фев 2017, 17:25

i=i+1, i+=1, i++, ++i
и где в этом огрызке кода x1, x2? есть только i, xi, yi, ai и те не факт, что объявлены. может хоть немного самоучитель по си почитать, прежде чем за светодиодики хвататься?
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Вопросы новичка.

Сообщение dimamichev » 19 фев 2017, 17:42

Ангел не ругайся, разобрался я... в этом фрагменте кода я по наивности вознадеялся, что в цикле, например, при i=1 "машина" xi поймёт как x1 и т.д... На простых конструкциях мне легче самому разобраться и до других донести чем самоучитель одолевать (хотя это необходимое условие)... Просто при компиляции "машина" могла бы написать: дорогой, ты хотел наверное не xi , а x(i)=x1, но я так не умею... (шутка)

Добавлено спустя 3 минуты 2 секунды:
Светодиодики... А за что ещё хвататься? Они основа исполнительных лялек.
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Angel71 » 19 фев 2017, 17:53

это не наивность, а безграмотность, лень и глупость. объявляем переменные d, g, t, i и дальше по тексту digit. можно ещё веселей сделать, объявив все одно буквенные. смысл улавливаешь? компилятор это не интерактивная диалоговая система с ai, перестраивающая правила языка как балбесам хочется. это очень компактная, эффективная и безжалостная штукенция с чёткими правилами. написала "не катит, пэрэдэлать", значит пэрэдэлать.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Вопросы новичка.

Сообщение dimamichev » 19 фев 2017, 18:06

А вот можно спокойно разжевать, а не тыкать как котёнка?.. Как в самоучителе (в каком кстати?). Если нет, то грубить не надо...Что касается безграмотности, лени, глупости и т.д... Не без этого... Дураки всё знают, никогда не устают, ни в чём не сомневаются...и самое главное - они не делают глупостей (как им кажется)...
Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Angel71 » 19 фев 2017, 18:20

нельзя.
Код: Выделить всёРазвернуть
int a = 1;
int b = 2;
int x = a+++b;

чему равно x? теперь переделай это объявление так, что бы в нём не было знака присваивания.
что это
Код: Выделить всёРазвернуть
x = a == 3 ? 1 : 0

делает? а это
Код: Выделить всёРазвернуть
(a+x > 6) ? Serial.print("oops") : b = 8;

или это
Код: Выделить всёРазвернуть
(x&(x-1)==0) ? Serial.print("yes") : Serial.print("no");

что делает? так это простенькие вопросы, даже до указателей и работы с памятью не дошло. а си/си++ очень сложный, там громадное количество вещей, с гадать не вариант - нужно знать и правильно использовать.
есть талантливые люди, которые быстро схватывают и могут себе позволить хвататься за решение практических задач и по ходу их решения изучать основы. остальные сначала зубрят и не выдумывают велосипедов с квадратными колёсами. если сразу не понял, что a0, a1, ... a15 это константы и что в цикле нужно без всяких безумных переименований имён переменных, а просто подставить в инициализации i соответствующее число, то с основами языка явно очень туго, т.е. вариант 2 - зубрить основы языка, искать задачи и решать их пачками (как на знание языка, так и всякие алгоритмы составлять).
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Вопросы новичка.

Сообщение dimamichev » 19 фев 2017, 22:06

У меня немного другой подход... Я повторяю свои ранние конструкции на Ардуине, так учусь. Вот код для ночника (схема выше). Работает и это здорово. Конструкции конечно для "детишек"...Быть непонятым печалька не только балбеса, но и того кто его таковым считает...А ответы на свои вопросы конечно жду в доступной (мне) форме...а иначе зачем эти вопросы? Не умеете, не беситесь, Вы ведь ангел.
Код: Выделить всёРазвернуть
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
//Свечение трёх трубочек с регулятором амплитуды перелива света и частоты//
unsigned int  n1=0;
unsigned int  n2=0;
unsigned int  n3=0;

int  k1=1;
int  k2=1;
int  k3=1;
int  i=0;

long  y1=0;
long  y2=0;
unsigned int  x=0;
unsigned int  j=0;
unsigned int  z=0;
unsigned int  r=0;

void setup()   
   {
        pinMode(6, OUTPUT); // канал сигнала для 1 трубки /         
        analogWrite(6,0);
        pinMode(5, OUTPUT); // канал сигнала для 2 трубки /         
        analogWrite(5,0);
        pinMode(9, OUTPUT); // канал сигнала для 3 трубки /         
        analogWrite(9,0);
        pinMode(A0, INPUT); // регулятор амплитуды и частоты/
   }
        void loop()
      {
       
            x=analogRead(A0); y2=millis();
            z=map(x, 0, 1023, 0, 127); // переменная, ограничивающая min яркости
            j=map(x, 0, 1023, 20, 2); // переменная, определяющая длительность задержки
            r=map(x, 0, 1023, 255, 128); // переменная, ограничивающая max яркости
            n1=n1+k1; n2=n2+k2; n3=n3+k3; //счётчики ступеней изменения яркости

          if ( n1>=r) { k1= -1 ;} if ( n1<=z) {k1= 1 ; }//условия смены направления счёта
          if ( n2>=r) { k2= -1 ;} if ( n2<=z) {k2= 1 ; }//ступеней изменения яркости
          if ( n3>=r) { k3= -1 ;} if ( n3<=z) {k3= 1 ; }
          if (y2-y1>=5000&i==0){n1=z+1;n2=127-z;n3=r;y1=y2;i=1;}// условия смены
          if (y2-y1>=30000&i==1){ i=2;y1=y2;}                             //программы переключения
          if (y2-y1>=5000&i==2){n1=r;n2=r;n3=r;y1=y2;i=3;}
          if (y2-y1>=30000&i==3){ i=0;y1=y2;}

          if(i==0 || i==2){analogWrite(6,25); analogWrite(5,25); analogWrite(9,25);}
          else
          {
           analogWrite(6,n1);
           analogWrite(5,n2);
           analogWrite(9,n3);
           }
           delay(j);

       }
   
//
// Конец /
//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Аватара пользователя
dimamichev
 
Сообщения: 1386
Зарегистрирован: 03 янв 2013, 16:27

Пред.След.

Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3