Ви не увійшли.
Сторінки 1
Здравствуйте. Я хочу измерить ВАХ на батарейке и построить график с помощью ардуино уно.
Нашла программы, которые написал человек, чтобы построить ВАХ подключив к ардуино солнечную батарею. Попробовала применить эти программы в моем варианте - работает. Но, непонятно как... Когда включен монитор порта результаты выдает, вроде все хорошо. Но оно выдает результаты даже в том случае, когда к входу А1, который указан в коде, ничего не подключено.
График должен строиться в программе processing 3.3.7, но там открывается только пустое окно (с осями, но без графика).
Кто знает, что может быть не так и как можно эту программу адаптировать к обычной батарейке? С программированием очень тяжело, на данный момент. Буду рада помощи.
Программа для ардуино:
#define axisY A1
int x=0;
void setup()
{
pinMode(axisY, INPUT);
Serial.begin(9600);
}
void loop()
{
int Y = analogRead(axisY);
if(x<=1000)
{x=x+1;}
else {
x=1000;
}
int B=15;
Serial.print(Y);
Serial.print(",");
Serial.print(x);
Serial.print(",");
Serial.print(B);
delay(100);
}
Программа для processing:
import processing.serial.*;
Serial myPort;
float xn,yn,yk,xk;
int reset, axisX, axisY;
void setup()
{
size(1000,500);
stroke(255,0,0);
line (0, height/2, width, height/2);
line(0,499,0,0);
line(0,499,1000,499);
line(999,499,999,0);
line(0,0,999,0);
line(500,499,500,0);
stroke (255,250,100);
line(100,499,100,0);
line(200,499,200,0);
line(300,499,300,0);
line(400,499,400,0);
line(600,499,600,0);
line(700,499,700,0);
line(800,499,800,0);
line(900,499,900,0);
line(0,200,1000,200);
line(0,100,1000,100);
line(0,300,1000,300);
line(0,400,1000,400);
println(Serial.list());
String portName = Serial.list()[0];
myPort = new Serial(this, portName, 9600);
myPort.bufferUntil('\n');
}
void serialEvent(Serial myPort)
{
String inputString = myPort.readStringUntil('\n');
inputString = trim (inputString);
int axises[] = int (split(inputString, ','));
if(axises.length == 3)
{
axisY = axises[0];
axisX = axises[1];
reset = axises[2];
}
}
void draw()
{
fill(#5fffff);
noStroke();
rect (900,350,980,370);
fill (255,0,0);
text ("X="+axisX*0.005,910,380);
text ("Y="+axisY*5.0/1024,910,420);
text ("Z="+reset,910,460);
text("0",3,490);
text("0.5",110,490);
text("1",210,490);
text("1.5",310,490);
text("2",410,490);
text("2.5",510,490);
text("3",610,490);
text("3.5",710,490);
text("4",810,490);
text("4.5",910,490);
text("1",3,390);
text("2",3,290);
text("3",3,190);
text("4",3,90);
fill(#5fffff);
rect (400,5,200,20);
fill (255,0,0);
text("********* ГРАФИК F(x,y) *********", 410,20);
float yn =500-(axisY*5.0/1024)*100;
float xn =axisX;
float xk =xn+2;
float yk =yn+1;
stroke (0);
line (xn, yn, xk, yk);
}
Сторінки 1