Scripts updated

main
Gerardo Marx 1 day ago
parent bb537c1fcc
commit 5f84e55424

@ -1,6 +1,6 @@
# Introduction
# Basic
# Basic General IO configuration
## Digital outputs
@ -51,7 +51,7 @@ for(int pwm=255; pwm>=0; pwm-=5){
}
```
## Analog readings
## Analog readings with ADC
```c
#include <Arduino.h>
@ -74,3 +74,147 @@ void loop() {
delay(100);
}
```
# A general TCLab readings and heater
```c
#include<Arduino.h>
// vars and pins at TCLab
const int LED = 9;
const int T1 = A0; // temperature sensor T1 input
const int T2 = A2; // temperature sensor T2 input
const int Q1 = 3; // PWM at Q1 (output)
const int Q2 = 5; // PWM at Q2 (output)
// vars and constants:
int T1Val;
int T2Val;
const int nAvg = 10; // samples per reading
const long BAUD = 115200; // Freq serial comm
const float factor = 3.3/1024*100; // 3.3V/1024*100
// functions
float readDeg(int channel) {
float acc = 0;
for(int i=0;i<=nAvg;i++) {
acc += analogRead(channel)*factor-50;
}
return acc/nAvg;
}
void setHeater(int pin, float value) {
// clamp the input value
if(value<0) value = 0;
if(value>100) value = 100;
//convert to pwm 0 - 255
int pwm = (int)(value*255.0/100.0+0.5);
analogWrite(pin, pwm);
analogWrite(LED, pwm);
}
void setup() {
// put your setup code here, to run once:
pinMode(Q1, OUTPUT);
pinMode(Q2, OUTPUT);
pinMode(LED, OUTPUT);
setHeater(Q1,40);
analogReference(EXTERNAL);
Serial.begin(BAUD);
delay(100);
Serial.println("Temps");
}
void loop() {
// put your main code here, to run repeatedly:
float t1Val = readDeg(T1);
float t2Val = readDeg(T2);
Serial.print(t1Val,4); Serial.print(',');
Serial.println(t2Val,4);
delay(250);
}
```
# Serial communication
```c
#include<Arduino.h>
// vars and pins at TCLab
const int LED = 9;
const int T1 = A0; // temperature sensor T1 input
const int T2 = A2; // temperature sensor T2 input
const int Q1 = 3; // PWM at Q1 (output)
const int Q2 = 5; // PWM at Q2 (output)
// vars and constants:
const int nAvg = 10; // samples per reading
const long BAUD = 115200; // Freq serial comm
const float factor = 3.3/1024*100; // 3.3V/1024*100
// functions
float readDeg(int channel) {
float acc = 0;
for(int i=0;i<=nAvg;i++) {
acc += analogRead(channel)*factor-50;
}
return acc/nAvg;
}
void setHeater(int pin, float value) {
// clamp the input value
if(value<0) value = 0;
if(value>100) value = 100;
//convert to pwm 0 - 255
int pwm = (int)(value*255.0/100.0+0.5);
analogWrite(pin, pwm);
analogWrite(LED, pwm);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(BAUD);
pinMode(Q1, OUTPUT);
pinMode(Q2, OUTPUT);
pinMode(LED, OUTPUT);
analogReference(EXTERNAL);
delay(100);
//Serial.println("TCLab ready");
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available()){
String cmd = Serial.readStringUntil('\n');
cmd.trim();
if(cmd == "T1"){
float T1Val = readDeg(T1);
Serial.println(T1Val);
}
else if(cmd == "T2"){
float T2Val = readDeg(T2);
Serial.println(T2Val);
}
else if(cmd.startsWith("Q1 ")){
int val = cmd.substring(3).toInt();
setHeater(Q1, val);
}
else if(cmd.startsWith("Q2 ")){
int val = cmd.substring(3).toInt();
setHeater(Q2, val);
}
else if(cmd == "R1"){
Serial.println("Not yet");
}
else {
Serial.println("Command Error");
}
}
}
```

Loading…
Cancel
Save