Контролери 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, то його потрібно деактивувати в диспетчері пристроїв.
Твердотільне реле 10А
Реле без механічних контактів на 10 А. Силовим елементом даного реле є симистор.Гальванічна розв'язк..
270.17грн.
Датчик звуку
Інтелектуальний дискретний датчик звуку. Робоча напруга живлення 4...6 В постійного струму. Чутливіс..
47.61грн.
Стерео підсилювач 2х5Вт PAM8406
Стерео підсилювач звукової частоти класу D зі змінними резисторами регулювання гучності на мікросхем..
65.09грн.
Кінцевий вимикач або кінцевик
Має одну групу перемикаючих контактів. На кінчику ричага встановлений рухомий ролік.Максимальний стр..
22.63грн.
Модуль 8-ми дискретних входів I2C
Модуль 8-ми повністю гальванічно розв'язаних дискретних входів з I2C комунікацією на основі мікросхе..
176.02грн.