Arduino UNO как осциллограф


Контроллеры Arduino можно использовать как простейший осциллограф, для наблюдения за быстро изменяющимися электрическими сигналами.

Скачиваем программу Processing , после чего её устанавливать не нужно - она запускается с EXE-файла.

Открываем Arduino IDE и вставляем такой код:


#define ANALOG_IN 0
void setup() {
  Serial.begin(9600); 
  //Serial.begin(115200); 
}
void loop() {
  int val = analogRead(ANALOG_IN);                                              
  Serial.write( 0xff );                                                         
  Serial.write( (val >> 8) & 0xff );                                            
  Serial.write( val & 0xff );
}

Загружаем этот код в контроллер Arduino.

Открываем программу Processing и вставляем в неё следующий код:

import processing.serial.*;
Serial port;  // Создание объекта класса Serial
int val;      // Данные, получаемые из сом-порта
int[] values;
float zoom;
void setup() 
{
  size(1280, 480);


// Открываем порт, к которому подключена плата

//контроллера используя скорость (9600 bps)
  port = new Serial(this, Serial.list()[0], 9600);
  values = new int[width];
  zoom = 1.0f;
  smooth();
}
int getY(int val) {
  return (int)(height - val / 1023.0f * (height - 1));
}
int getValue() {
  int value = -1;
  while (port.available() >= 3) {
    if (port.read() == 0xff) {
      value = (port.read() << 8) | (port.read());
    }
  }
  return value;
}
void pushValue(int value) {
  for (int i=0; i<width-1; i++)
    values[i] = values[i+1];
  values[width-1] = value;
}
void drawLines() {
  stroke(255);
  
  int displayWidth = (int) (width / zoom);
  
  int k = values.length - displayWidth;
  
  int x0 = 0;
  int y0 = getY(values[k]);
  for (int i=1; i<displayWidth; i++) {
    k++;
    int x1 = (int) (i * (width-1) / (displayWidth-1));
    int y1 = getY(values[k]);
    line(x0, y0, x1, y1);
    x0 = x1;
    y0 = y1;
  }
}
void drawGrid() {
  stroke(255, 0, 0);
  line(0, height/2, width, height/2);
}
void keyReleased() {
  switch (key) {
    case '+':
      zoom *= 2.0f;
      println(zoom);
      if ( (int) (width / zoom) <= 1 )
        zoom /= 2.0f;
      break;
    case '-':
      zoom /= 2.0f;
      if (zoom < 1.0f)
        zoom *= 2.0f;
      break;
  }
}
void draw()
{
  background(0);
  drawGrid();
  val = getValue();
  if (val != -1) {
    pushValue(val);
  }
  drawLines();
}

Нажимаем кнопку пуск этой программы и видим временной график того, что происходит у нас на аналоговом входе A0 контроллера.

Я таким образом, например наблюдал, что на выход выдает модуль измерения напряжения сети 220В, так как на него нет никакой документации в интернете. При этом я лицезрел синусоиду, но на этом графике нет привязок ко времени и величине сигнала. И по-этому трудно измерять частоту и амплитуду этого сигнала.

Нужно так же отметить, что COM-порт должен быть в системе только один. Если на компьютере есть физический порт COM1, то его нужно деактивировать в диспетчере устройств.

Так же можно увеличивать частоту дискретизации нашего осциллографа, увеличивая скорость СОМ-порта в контроллере и в программе Processing.

Похожие статьи

Контроль исполнения программы Arduino

Контроль исполнения программы Arduino

Данная статья посвящена описанию структур, используемых для управления циклом выполнения программы (логика управления). Управление логикой Arduino такое же как у языка C. И мы остановимся на процедурах, характерных только среде Arduino.

Настройка Arduino IDE для программирования WiFi модуля ESP8266

Настройка Arduino IDE для программирования WiFi модуля ESP8266

ESP8266 это дешевые широко распространенные модули Wi-Fi. Они состоят из самодостаточного микроконтроллера с GPIO (дискретными входами-выходами), аналоговым входом, портами параллельной связи, I2C, SPI, и самое главное с блоком Wi-Fi связи. Изначально продвигаемые как дешовые модули Wi-Fi для плат Arduino и Raspberry Pi, они так же могут быть запрограммированы как отдельные платы разработчика при помощи Arduino IDE. Для этого необходимо сначала установить библиотеки и инструментарий  ESP8266 в Arduino IDE.

Arduino - что это такое? Популярно для начинающих

Arduino - что это такое? Популярно для начинающих

Arduino это недорогая, доступная в смысле покупки электронная плата с микроконтроллером и выводами входов-выходов. Arduino выпускаются в различных версиях, но поддерживают один и тот же, простой язык программирования. Огромный успех Ардуино, с уважением к другим микроконтроллерам, связан с тем, что аппаратное и программное обеспечение были опубликованы в открытом бесплатном для общего пользования виде: вы можете читать, изучать и даже расширять его возможности как в плане программного обеспечения, так и с точки зрения аппаратных средств. Вся информация об Ардуино доступна под лицензией "Creative Commons Attribution-ShareAlike 3.0 License".

Выбор шагового двигателя

Выбор шагового двигателя

Вам уже приходилось делать выбор между разными шаговыми двигателями для реализации своих амбициозных проектов? Зачастую у новичков существует миф, что NEMA 17 слабые и ни на что не годные шаговики, а для 3D-принтера обязательно нужен как минимум NEMA 23, а то и дороже. Давайте попробуем разобраться какие критерии всё-таки должны учитываться при правильном выборе шагового двигателя. Если на них не обращать внимание, а просто надеяться на свой инстинкт потребителя, то в результате можно сильно разочароваться. К примеру можно купить как бы обычный двигатель NEMA 17 и стандартный драйвер рекомендуемый под него, но получить постоянно перегревающуюся микросхему драйвера и невозможность нормальной работы проекта.

Посмотрим для начала какой выбор нам предоставляют самые доступные поставщики шаговых двигателей.


Солнечный трекер на ардуино и сервоприводе (+код для DIY)

Солнечный трекер на ардуино и сервоприводе (+код для DIY)

Сегодня мы рассмотрим схему и код для создания солнечного трекера 

  • Любая плата Arduino (Uno на данном примере)
  • Конструкция поворотного трекера
  • 2 x 4.7K подтягивающие резисторы 
  • 2 x фоторезисторы 
  • Сервопривод SG -90 

Arduino основы программирования

Arduino основы программирования

Здесь мы научимся писать элементарную программу способную сделать что-либо интересное для новичка. Здесь вы узнаете, как написать простейший скетч для Arduino используя стандартый IDE. Мы пока пропустим использование входов-выходов, но обратим внимание на связь через USB. Синтаксис языка Arduino точно повторяет язык C, поэтому на нем мы останавливаться не будем. Мы сконцентрируемся на конкретных аспектах Arduino языка, в котором вы можете использовать все принципы, которые присущи языку C: переменные, операторы, состояния, типы, константы и т.д.

Arduino и шаговый двигатель

Arduino и шаговый двигатель

Перед началом очередного проекта на Arduino, было решено использовать шаговый двигатель Nema 17 из-за отличного соотношения цена/качество. Перед подключением Nema 17, за плечами был определенный опыт работы с шаговиком 24byj48 (даташит). Управлялся он и с помощью Arduino, и с помощью Raspberry pi, проблем не возникало. Основная прелесть этого двигателя - цена (около 3 долларов в Китае). Причем, за эту сумму вы приобретаете двигатель с драйвером в комплекте. Согласитесь, такое можно даже и спалить, не особо сожалея о содеянном.

Комплект антенн для усиления сигнала FPV для Hubsan H501S H107D

Комплект антенн для усиления сигнала FPV для Hubsan H501S H107D

Специальный комплект для увеличения дистанции при управлении квадрокоптером Hubsan H501S H107D из магазина Алиэкспресс.

Обзор плат ардуино \ Arduino

Обзор плат ардуино \ Arduino

Оригинальный Arduino был разработан для одной специфической задачи, и справился с этой задачей в совершенстве. С успехом первой оригинальной платы Arduino, компания решила создать больше проектов, некоторые из них для очень специфических задач. Кроме того, поскольку оригинальный дизайн Arduino был под открытой лицензией, несколько компаний и частных лиц разработали свои собственные Arduino совместимые платы расширений, или следуя принципам открытого исходного кода, предложили свои изменения в Arduino. Arduino начал программу сертификации для обеспечения совместимости с бордами, которые используют различные процессоры, и Intel Galileo был первым, кто получил подобный сертификат. Любой может сделать свой собственный Arduino-совместимый прибор, но наименование и логотип Arduino зарезервирован как торговая марка. Таким образом, вы найдете множество плат с именами, заканчивающимися на "uino", подразумевающие совместимость.

Arduino сделал дизайн платы с открытым исходным кодом, но они по-прежнему производят платы самостоятельно. Эти платы известны как официальные. Другие компании также делают Arduino совместимые платы.

Arduino и использование двигателей. Подключение двигателя постоянного тока и управление им.

Arduino и использование двигателей. Подключение двигателя постоянного тока и управление им.

1. Управляем маленькими моторчиками

Управление маленьким двигателем может быть может осуществляться довольно просто. Если двигатель достаточно маленький, он может быть непосредственно соединен с выводом Arduino, и просто изменяя уровень управляющего сигнала от логической единицы до нуля будем контролировать моторчик. Этот проект раскроет вам основную логику в управлении электродвигателем; однако, это не является стандартным способом подключения двигателей к Arduino. Мы рекомендуем, вам изучить данный способ, а затем перейти на следующую ступень - заняться управлением двигателями при помощи транзисторов.

Подключим миниатюрный вибромоторчик к нашему Arduino.

Управление машинкой через WiFi с помощью ESP8266 NodeMCU

Управление машинкой через WiFi с помощью ESP8266 NodeMCU

Итак будем управлять двумя реверсивными (вращение в обе стороны) двигателями: основным и рулевым. Питать их будем от аккумулятора 3,7 В, но можно и до 12 В в принципе подавать, если согласовать питание контроллера или организовать его отдельным аккумулятором.
В силовой части используем простейший миниатюрный драйвер шагового двигателя l9110s или же можно использовать сборку на L293\8  или любой не менее мощный, который вы найдёте. В общем я всё нарисовал на картинке.

ESP8266 — встречайте FreeRTOS

ESP8266 — встречайте FreeRTOS

Espressif Systems не перестает удивлять нас — они портировали FreeRTOS на ESP8266. FreeRTOS — многозадачная операционная система реального времени для встраиваемых систем. Портирована на множество микропроцессорных архитектур. Безусловно, этот прорыв будет способствовать более широкому распространению ESP8266 в Интернете Вещей. Про FreeRTOS написано достаточно много даже на русском языке, так что я не буду сейчас рассуждать на эту тему, скажу лишь для тех, кто не в теме, что эта система существует уже достаточно давно и практически стала стандартом де-факто для встраиваемых систем, где критично время отклика, требуется синхронизация и решаются подобные задачи, т.е. там, где требуется система реального времени. FreeRTOS написана на Си с небольшим количеством ассемблерного кода и ее ядро представлено всего 3-мя C файлами.

Драйвер шагового двигателя и двигателя постоянного тока L298N и Arduino

Драйвер шагового двигателя и двигателя постоянного тока L298N и Arduino

Драйвер шагового двигателя и двигателя постоянного тока L298N и Arduino

Модуль L298N H-bridge можно использовать для двигателей, напряжение питания которых находится в диапазоне от 5 до 35 вольт. Кроме того, на многих подобных платах есть встроенный 5В регулятор, который дает возможность запитывать ваши устройства.

Подключение модуля L298N

Все самое вкусное под катом... >

Модуль GSM GPRS SIM800 MicroSIM с антенной и ардуино

Модуль GSM GPRS SIM800 MicroSIM с антенной и ардуино

Миниатюрный модуль GSM/GPRS сотовой связи на основе компонента SIM800L , разработанного компанией SIMCom Wireless Solutions. Русскоязычная версия сайта SIMCom здесь. Стандартный интерфейс управления компонента SIM800L предоставляет доступ к сервисам сетей GSM/GPRS 850/900/1800/1900МГц для отправки звонков, СМС сообщений и обмена цифровыми данными GPRS. Поставляется с встроенной антенной, также можно подключить дополнительные антенны для улучшения качества сигнала.

Управлять модулем можно при помощи персонального компьютера через преобразователь интерфейса USB-UART или непосредственно через UART модулем микроконтроллера самостоятельной разработки или Arduino, Raspberry Pi и аналогичными.

Сенсорная кнопка и Arduino

Сенсорная кнопка и Arduino

Подобные кнопки/датчики используют ваше тело как часть электрической цепи. Когда вы касаетесь чувствительной поверхности сенсорной кнопки, емкость цепи изменяется и фиксируется. Изменение емкости приводит к изменению выходного сигнала.

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

Контроль трафика на ардуино - светофор Arduino DIY схема+ код

Контроль трафика на ардуино - светофор Arduino DIY схема+ код

Проектируем :

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

Нам нужно три светодиода красного, желтого и зеленого цветов на каждом перекрестке. Пересечение разделено на четыре полосы: Lane1, Lane 2 Lane 3 и Lane 4.


ESP8266 карманный  вай-фай джаммер

ESP8266 карманный вай-фай джаммер

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

Как это работает

Протокол 802.11 Wi-Fi содержит так называемый фрейм деаутентификации. Он используется для безопасного отключения клиентов от беспроводной сети.Поскольку эти управляющие пакеты незашифрованы, вам просто нужен MAC-адрес маршрутизатора Wi-Fi и клиентского устройства, которое вы хотите отключить от сети. Вам не обязательно быть в сети или знать пароль, этого достаточно, чтобы быть в его диапазоне.

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

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

Управление маленьким двигателем может быть может осуществляться довольно просто. Если двигатель достаточно маленький, он может быть непосредственно соединен с выводом Arduino, и просто изменяя уровень управляющего сигнала от логической единицы до нуля будем контролировать моторчик. Этот проект раскроет вам основную логику в управлении электродвигателем; однако, это не является стандартным способом подключения двигателей к Arduino. Мы рекомендуем, вам изучить данный способ, а затем перейти на следующую ступень - заняться управлением двигателями при помощи транзисторов.

Делаем простой тесла генератор , катушка Теслы своими руками

Делаем простой тесла генератор , катушка Теслы своими руками

 Сегодня я собираюсь показать вам, как я построить простую катушку Тесла! Вы могли видеть такую катушку в каком то магическом шоу или телевизионном фильме . Если мы будем игнорировать мистическую составляющую  вокруг катушки Тесла, это просто высоковольтный резонансный трансформатор который работает без сердечника. Так, чтобы не заскучать от скачка теории давайте перейдем к практике.

Сборка дешевого 3д принтера из фанеры Grabber i3 Часть 2 механика

Сборка дешевого 3д принтера из фанеры Grabber i3 Часть 2 механика

В этом видео я покажу как собрать и установить элементы для 3д принтера Graber i3 из фанеры - механика ! 

Делаем весы на ардуино  Arduino  , работа с тензонометрическим датчиком и платой  HX711

Делаем весы на ардуино Arduino , работа с тензонометрическим датчиком и платой HX711

В данной статье я соберу весы на базе ардуино ,подробно разобрав все тонкости подключения датчика к плате преобразователя HX711 и так же программной части .

Подключаем к ардуино MLX90614 IR-TERMOMETER MODULE 28040 - модуль для бесконтактного измерения температуры

Подключаем к ардуино MLX90614 IR-TERMOMETER MODULE 28040 - модуль для бесконтактного измерения температуры

Подключение бесконтактного ИК-термометра mlx90614 к ардуино Для точного измерения температуры необходимо чтобы измеряемый объект полностью перекрывал обзор датчика mlx90614 Диапазон измеряемых температур -70 °C ~ 380 °C

Генератор радиошума в диапазоне 2.4 ГГц

Генератор радиошума в диапазоне 2.4 ГГц

В данной статье предлагается использовать модуль Pololu Wixel с платой аналогового генератора шума на базе ADF4351, а для демонстрации результатов генерирования использовать дисплей OLED SSD1306 с I2C.

У данного генератора рабочий диапазон частот — от 35 до 4400 МГц, но для наших целей достаточно использовать только частоты от 2400 до 2499 МГц с шагом в 1 МГц. Значения генерируются с помощью программы ADF4350/ADF4351 Evaluation Board Software (http://www.analog.com/ru/design-center/evaluation-hardware-and-software/evaluation-boards-kits/eval-adf4351.html#eb-relatedsoftware), предоставляемой производителем.

Инициализация производится шестью регистрами, которые передаются по SPI в определенной последовательности. Так как алгоритм вычисления частот не явен (частично можно посмотреть в проекте https://github.com/s54mtb/ADF4351.git), то для данного набора частот был написан собственный генератор.


Инфракрасная паяльная станция своими руками ,бюджетный подогрев с регулировкой температуры ИК

Инфракрасная паяльная станция своими руками ,бюджетный подогрев с регулировкой температуры ИК

В данном видео я расскажу как сделать бюджетную ИК станцию (нижний подогрев) с регулировкой нагрева для реболлинга БГА , выпайки и запайки деталей . Покажу ёё возможности и проведу тесты . Да да , обычный керамический нагреватель излучает ик спектр

Сделай сам универсальное устройство для зарядки li-ion аккумуляторов любых форм факторов 3.7в

Сделай сам универсальное устройство для зарядки li-ion аккумуляторов любых форм факторов 3.7в

Маленькая самоделка , которая облегчит работу с литиевыми аккумуляторами различных форм-факторов .

Хороший припой с Ali обзор и тесты на разных температурах KAINA

Хороший припой с Ali обзор и тесты на разных температурах KAINA

Тест припоя (бобины 100 грамм - по весу сошлось , но хитрые китайцы включают вместе вес пластиковой катушки) . В целом паяет отлично , в особенности под СМД элементы идеально подходит диаметр 0.5 . Для стандартной пайки удобен 1.0 . 100 граммовой катушки хватит надолго . Больше в видео )

Теги: Arduino UNO как осциллограф