77 lines
1.6 KiB
C++
Executable File
77 lines
1.6 KiB
C++
Executable File
/*
|
|
*
|
|
* Udemy.com
|
|
* Building an Arduino DC Voltmeter
|
|
*
|
|
*/
|
|
|
|
float vPow = 4.7;
|
|
float r1 = 68000;
|
|
float r2 = 680000;
|
|
int speed = 120;
|
|
void setup() {
|
|
|
|
pinMode(3, OUTPUT);
|
|
analogWrite(3, speed);
|
|
|
|
Serial.begin(9600);
|
|
|
|
// Send ANSI terminal codes
|
|
Serial.print("\x1B");
|
|
Serial.print("[2J");
|
|
Serial.print("\x1B");
|
|
Serial.println("[H");
|
|
// End ANSI terminal codes
|
|
|
|
Serial.println("--------------------");
|
|
Serial.println("DC VOLTMETER");
|
|
Serial.print("Maximum Voltage: ");
|
|
Serial.print((int)(vPow / (r2 / (r1 + r2))));
|
|
Serial.println("V");
|
|
Serial.println("--------------------");
|
|
Serial.println("");
|
|
|
|
delay(2000);
|
|
}
|
|
|
|
void loop() {
|
|
float v = (analogRead(A0)* vPow) / 1024.0;
|
|
float v2 = v / (r2 / (r1 + r2));
|
|
|
|
// Send ANSI terminal codes
|
|
//Serial.print("\x1B");
|
|
//Serial.print("[1A ");
|
|
// End ANSI terminal codes
|
|
|
|
Serial.print(analogRead(A0));
|
|
Serial.print(" ");
|
|
Serial.println(v2);
|
|
|
|
|
|
// First we check to see if incoming data is available:
|
|
|
|
while (Serial.available() > 0)
|
|
{
|
|
// If it is, we'll use parseInt() to pull out any numbers:
|
|
|
|
speed = Serial.parseInt();
|
|
|
|
// Because analogWrite() only works with numbers from
|
|
// 0 to 255, we'll be sure the input is in that range:
|
|
|
|
speed = constrain(speed, 0, 255);
|
|
|
|
// We'll print out a message to let you know that the
|
|
// number was received:
|
|
|
|
Serial.print("Setting speed to ");
|
|
Serial.println(speed);
|
|
|
|
// And finally, we'll set the speed of the motor!
|
|
|
|
analogWrite(3, speed);
|
|
}
|
|
|
|
|
|
}
|