Skip to content

11. Input devices

This week I worked on making an input device.


individual assignment:

measure something: add a sensor to a microcontroller board that you have designed and read it

group assignment:

probe an input device’s analog levels and digital signals

What we did

FabAcademy2019-FabLab Kannai lab site

Input device

For this week assignment, I choose Peltier Cell for a sensor device. Peltier cell is usually used for small refrigerator since it is compact and silent. Peltier Cell is using Peltier effect which you give electric current, it creates a difference of temperature. But you can use it the opposite way: If you create a difference of temperature with Peltier cell, it gives electric current. This is called the Seebeck effect. So I focused on Seebeck effect and used it as an input device which sensed the temperature of heat of your hand palm.

Device/Parts list

  • Peltier Cell(Heibei TEC1-12705)
  • ATTiny 44(datasheet)
  • 0 ohm resistor(311-0.0ERCT-ND) x1
  • 10K(311-10.0KFRCT-ND) ohm resistor x5
  • 100K(311-100KFRCT-ND) ohm resitor x1
  • Ope amp(AD8615AUJZ-REEL7CT-ND)
  • capasiter 1μF(445-1423-1-ND)
  • 6 pin header
  • 1x2 pin socket x2

Circuit Design

I used EAGLE to design the circuit. Based on knowledge of the board I made in week 6, I redesign my board.

I added 2 1x2 pin sockets which we can jack in peltier cell and OPamp to amprify 10X of analog signal from peltier cell. I checked datasheet to determine which pins are best to assign analog IN.

PCB production

Cutting with MDX-15 and FabModules on Ubuntu

Cutting with 1/64 square drill

Soldered all parts


I wrote arduino on ATTINY 44 through FabISP.

  1. Opened the preferences in the Arduino.
  2. Put this URL:
  3. Opened the boards manager in the “Tools > Board” menu.
  4. Searched ATTiny
  5. Installed.
  6. Then hit “Burn Bootroader”


At first I assined Analog IN to pin 5 but this is not used as analog in for attyny 44 so I cut circuit and soldered jumper wire to pin 6.


#include <SoftwareSerial.h>
SoftwareSerial mySerial(0, 1); // RX, TX

int analogPin = 7; 

int val = 0;          

void setup() {
  pinMode(8, INPUT);

void loop() {
  val = analogRead(analogPin);   


Turned on Arduino, and clicked serial monitor. By default, it gives us back 512(1024/2).

After I put on my hand for a while, it went up to around 600. This means it can sensor the difference of temperature causing by my hand.


SCH file BRD file FabAcademy_week11.ino