Measure something: add a sensor to a microcontroller board that you have designed and read it.
Before starting this practice I have decided to design an arduino compatible board based on the atmega 328p microcontroller which was inspired by the arduino UNO board to be able to test different sensors and input devices.
I designed the board in the EAGLE software
For manufacturing use the CNC machining process to generate the raster and cut files in the fabmodules tool.
For fabrication use a 1610 CNC milling machine
Then I proceed to collect the circuit components and solder them
Once the board was ready, I proceeded to connect the sensor, for this it is necessary to connect a resistor creating a pull down configuration as shown in the image
Now, I proceed with the programming, for this I use the Arduino IDE. The programming of the flex sensor is very basic, it is only necessary to perform a digital analog reading.
// These constants won't change. They're used to give names to the pins used:
const int analogInPin = A0; // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to
int sensorValue = 0; // value read from the pot
int outputValue = 0; // value output to the PWM (analog out)
void setup() {
// initialize serial communications at 9600 bps:
Serial.begin(115200);
pinMode(13,OUTPUT);
}
void loop() {
// read the analog in value:
sensorValue = analogRead(analogInPin);
// map it to the range of the analog out:
outputValue = map(sensorValue, 1023, 950, 0, 10);
// change the analog out value:
analogWrite(analogOutPin, outputValue);
// print the results to the Serial Monitor:
Serial.print("sensor = ");
Serial.print(sensorValue);
Serial.print("\t output = ");
Serial.println(outputValue);
if(outputValue>5){
digitalWrite(13,1);
}
else{
digitalWrite(13,0);
}
// wait 2 milliseconds before the next loop for the analog-to-digital
// converter to settle after the last reading:
delay(100);
}
Now, before loading the developed program to our board from the Arduino IDE, it is first necessary to load a compatible firmware, in this case I use the EduAtmega328p firmware developed by Edu Cartagena, which works very well.
Once the firmware is loaded onto our board, we can load the program normally as on any arduino board. And the result was this.