Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Jester
2021-09-09 17:32:42
Green пише:

В детстве все через это проходят.

Все заработало.
Вижу реальные цифры, спокойно установил нужный мне порог.
Схема пашет и здоровается при запуске )))

#include <iarduino_OLED_txt.h>                         // Подключаем библиотеку iarduino_OLED_txt.
iarduino_OLED_txt myOLED(0x78);                        // Объявляем объект myOLED, указывая адрес дисплея на шине I2C: 0x78 (если учитывать бит RW=0).
                                                       //
extern uint8_t MediumFontRus[];                         // Подключаем шрифт SmallFontRus.

float volts = 0.0;

void setup(){ 
  pinMode(6,OUTPUT);   //контакты цыфровые активировать как ВЫХОДЫ
  pinMode(10,OUTPUT);  //контакты цыфровые активировать как ВЫХОДЫ
  pinMode(A2,INPUT);   // Аналоговый вход активировать на вход
  
    myOLED.begin();                                    // Инициируем работу с дисплеем.
    myOLED.setFont(MediumFontRus);                      // Указываем шрифт который требуется использовать для вывода цифр и текста.
//  myOLED.setCoding(TXT_UTF8);                        // Указываем кодировку текста в скетче. Если на дисплее не отображается Русский алфавит, то ...
myOLED.clrScr();
myOLED.print( "Привет."    ,      OLED_C, 1);
myOLED.print( "чувак"    ,      OLED_C, 3);
myOLED.print( "V[26-28]"    ,      0, 6);
delay(3000);  

 digitalWrite(6,1);   
 digitalWrite(10,0);
 delay(300);  
 digitalWrite(6,0);   
 digitalWrite(10,1);
 delay(300);  
}                                                      // раскомментируйте функцию setCoding и замените параметр TXT_UTF8, на TXT_CP866 или TXT_WIN1251.
                                                       //




void loop(){                                           //
    myOLED.clrScr();                                   // Чистим экран.
    myOLED.print( "V[26-28]"    ,      0, 1);    
    
     int aa = analogRead(A2);
     volts = aa*0.0354; 
      if(aa > 846){
          digitalWrite(6,1);    // на 6 выход- ЗЕЛ диод без резистора
          digitalWrite(10,0);   // на 10 выход - БЕЛ диод, с резистором

      }
      if(aa < 800){
          digitalWrite(6,0);
          digitalWrite(10,1);

      }

   
    myOLED.print( "aa=" , 0, 3);         myOLED.print( aa , 40, 3);    
    myOLED.print( "V=" , 0, 5);         myOLED.print( volts , 40, 5);  

    delay(1000);                                       // Ждём 3 секунды.

}    
Green
2021-09-09 09:56:49

В детстве все через это проходят.

Васятко
2021-09-08 19:02:02
Jester пише:

Поставлю ЖК и буду видеть реалии.

Наивный чукотский вьюноша

Jester
2021-09-08 08:58:10

Заработало!!!!

void loop() {

     int aa = analogRead(A2);
     delay(1);
    // volts = aa/200; 
      if(aa > 20){
          digitalWrite(6,1);
          digitalWrite(10,0);

      }
      if(aa < 12){
          digitalWrite(6,0);
          digitalWrite(10,1);

      }
     
      
}

Как видим, при значении "аа" большем 20, программа почувствовала вход через делитель напряжения от батарейки.
Но это я подобрал значение в программе СКЕТЧ.
Короче куплю ЖК и буду видеть реальность)))
А до этого, я писал код в программе MakeBlock, и там значение от этой же батарейки было в 200 раз больше(примерно).
Но в этой МЕЙКБЛОК я тестировал Ардуину в ЖИВОМ режиме , тоесть ОНЛАЙН по ЮСБ получая значения с аналога на экран программы.
Возможно в живом режиме и в режиме прошитом Ардуина по разному понимает уровень входного сигнала (хотя я пока не уверен).
Ну в общем проблему решил )))).
Всем спасибо за поддержку.
Поставлю ЖК и буду видеть реалии.

Телятко
2021-09-07 23:12:06

"на разных ресурсах, по разному пишут считывание с аналогового порта:" а  ссылки на эти ресурсы секретные? Что-то мне подсказывает , что понадобится и полный скетч, загруженный автором в ардуинку(скетча из примеров у автора нет и он берет скетчи из сторонних ресурсов)

renoshnik
2021-09-07 22:13:43

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

Honey
2021-09-07 19:51:44

Точно не читают значения? Померяйте мультиметром напряжение на аналоговых портах. Выведите в сериал значения, которые с них считываются (ведь с них в любом случае что-то считывается).

Jester
2021-09-07 18:56:36

Аналоговые порты не срабатывают после загрузки кода в arduino uno.
В режиме симулятора Makeblock, отлавливаю аналоговые входы, вижу их циферное значение, и условия в программе срабатывают, заставляя светодиоды на цифровых выходах загораться.
Но если код загрузить в ардуину, то аналоговые порты словно не читают значение.
Подскажите, кто знает, почему?
Спасибо.

Еще появились вопросы по различиям в коде.
на разных ресурсах, по разному пишут считывание с аналогового порта:
1.
int sensePin = 0; 
int val = analogRead(sensePin);  - тоесть вход как простая цифра "0".

2.
int val = analogRead(A0); 

3.
int val = analogRead(A0+0); 

Вобще не понятно, почему так разнятся одни и те же строки. Некоторые даже указывают через A14, A15 .
Возможно это не имеет значения, но запрограммированная ардуинка почему-то не заработала.

Підвал форуму