##Resources
- [Electronics symbols, and simple circuits.](https://roberthart56.github.io/SCFAB/SC_lab/Electronics/electronics_basics/electronic_basics.html)
- Tinkercad
- [Get an Autodesk (free) student account.](https://www.autodesk.com/education/home)
- [Tinkercad website.](https://www.tinkercad.com/)
- [Spring 2020 digital fabrication course.](https://nathanmelenbrink.github.io/ps70/index.html)
- Connecting to wireless internet with the ESP32- based modules:
- [Link to workshop on networking.](https://nathanmelenbrink.github.io/intro-dig-fab/09_networking/index.html)
- [Video of two wireless-connected boards trading data through a firebase (google) database.](https://youtu.be/wH-XIe2DcAI)
- [Link to Elegoo "Super Starter Kit Uno R3" documentation.](http://www.elegoo.com/download/)
###Arduino and Electronics Intro, Sept. 16, 2020
- Arduino IDE installation. [Download Arduino IDE](https://www.arduino.cc/en/Main/Software)
- [Link to Elegoo "Super Starter Kit Uno R3" documentation.](http://www.elegoo.com/download/)
- Blink program, using built-in LED. File - Examples - Basics - Blink.
- Modifying the Blink program. [modified_blink.txt](modified_blink.txt)
- Tinkercad and Arduino kit: Building a Blink circuit with an LED on a breadboard.
- [Get an Autodesk (free) student account.](https://www.autodesk.com/education/home)
- [Tinkercad website.](https://www.tinkercad.com/)
- Build an LED circuit with Tinkercad. [Tinkercad model - basic LED](https://www.tinkercad.com/things/4pTc6iwl5Ln-basic-blink/editel?sharecode=8bMG6r5M0lgXvdfhJmnGem79JFd-dZuXKYaqNrtmt4U)
![pic](Blink.png)
- Building a circuit with a button. Just 5V, LED, resistor, Ground. [Tinkercad link](https://www.tinkercad.com/things/8OAZxBUeQuz-simple-button-circuit/editel?sharecode=GnYxLkCRCMZKfiVihr_Ssje-0KfzNF95Z6Yykne1udU)
![pic](Just_button.png)
- Buttons as digital inputs: [link to diagrams](https://roberthart56.github.io/SCFAB/SC_lab/Sensors/Button/index.html)
- Button program. File->examples->basics->DigitalReadSerial. [tinkercad model](https://www.tinkercad.com/things/3j3y2M0mkkE-button-push-program/editel?sharecode=16BdxWj1eMP1CRvO-1CRh9xb3E0WFBea5Ob5lBy9bY0)
![pic](Button.png)
- Button turns on LED using a program. [Here's the code](button_led.txt). And here's the[Tinkercad link to button-LED-program](https://www.tinkercad.com/things/1KPYci5MJoW-magnificent-habbi/editel?sharecode=gLV6nSrobmEh7TEJnpSkMrirzaDfa2ulXQsJ22JmF-A)
![pic](button+LED.png)
###Sensors Demonstration, Sept. 23, 2020
- Reading a photoresistor to detect light level. Demonstrate using [Tinkercad model.](https://www.tinkercad.com/things/eXd5onQdm0l-grand-turing/editel?sharecode=oTcPR817Hlrv6wQOmqi6mXQFxVYzVVlL4R0RFx7Mp7Q)
For code, use Arduino sample code for analog Read: "Files->examples->basics->analogRead Serial.""
![pic](photoresistor.png)
- Photoresistor circuit is shown above.
- "Analog in" on arduino gives numbers from 0 to 1023.
- Serial monitor is used to keep track of changing variables.
- Temperature sensing using a thermistor.
- Link to [lab page on thermistor.](https://roberthart56.github.io/SCFAB/SC_lab/Sensors/Thermistor/index.html)
- [Arduino code for this configuration](thermistor_9_23_20.txt)
- Photo of circuit.
![schematic](thermistor_schematic.jpg)
![circuit](thermistor_pic.jpg)
- Realtime demo.
###Demonstrations for Sept. 30, 2020.
- Photoresistor with RGB LED.
- [Tinkercad.](https://www.tinkercad.com/things/gYY83C3kJES-bodacious-bruticus-allis/editel?sharecode=LavgIpk3OLauciMlIjNoY-fToRwqxuWjsJn9hK-5u-U)
- [Arduino Code.](RBG_LED.txt)
- ![Photograph](RBG_tinkercad.png)
- Servomotor.
- [Tinkercad circuit.](https://www.tinkercad.com/things/0qaKWHsJjDh-tremendous-tumelo-kieran/editel?sharecode=13WcM8MP3l6pTYZyV5uclordMVU8fuKx3-8b6milmK8)
- ![Photograph.](Servo.png)
###Demonstration for Oct. 7, 2020.
- Connecting to wireless internet with the ESP32- based modules using [firebase:](https://firebase.google.com/)
- [Link to workshop on networking.](https://nathanmelenbrink.github.io/intro-dig-fab/09_networking/index.html)
- [Video of two wireless-connected boards trading data through a firebase (google) database.](https://youtu.be/wH-XIe2DcAI)
- [Arduino code for sender](firebase_pot_Sept9.txt)
- [Arduino code for receiver](firebase_servo_Sept9.txt)
- Realtime demonstration of database and connections.
- Purchasing Esp32 modules
- [Amazon](https://www.amazon.com/ESP-WROOM-32-Development-Dual-Mode-Microcontroller-Integrated/dp/B07WCG1PLV/ref=sr_1_14?dchild=1&keywords=wroom&qid=1602020892&sr=8-14)
- [Other](https://makeradvisor.com/tools/esp32-dev-board-wi-fi-bluetooth/)
- [Tutorials on ESP32](https://randomnerdtutorials.com/getting-started-with-esp32/)
###Unipolar stepper motor. Oct. 21, 2020.
Here's the stepper motor board that comes in the Elegoo kit, with the motor itself behind. This motor takes 2000 steps for one revolution.
![motor](unipolar_board.jpg)
Below is a photo of the connections to the Arduino. The connections on the stepper board and the Arduino are listed:
- orange - in1 - Pin 8
- yellow - in2 - pin 9
- green - in3 - pin 10
- blue - in4 - pin 11
- red - power plus - VIN or 5V. (with 9V battery as in the picture, VIN = 9 Volts)
- brown - power minus - ground
![arduino](unipolar_arduino.jpg)
Here is a link to a simple code that steps continuously. [Unipolar_stepper.txt](Unipolar_stepper.txt)
Here is a code that uses a function to step, and steps forward and backwards. [step_in_loop.txt](step_in_loop.txt)
Here is a code that uses tabs to make functions clearer, and does a small dance. [unipolar_Oct21a.zip](unipolar_Oct21a.zip)
###Touch sensors. Oct 21, 2020.
[link to page on touch sensing with Arduino](https://roberthart56.github.io/SCFAB/SC_lab/Sensors/CapacitiveTouch/index.html)
###Combining code.
The linked code is what we tried to do in class: move a motor an amnount depending on a sensor reading, only if the sensor reads greater than a programed value: [touch-stepper.zip](touch-stepper.zip)
### DC Motors and driving them. Oct. 28, 2020.
![picture](motor_circuit.png)
Here's what we'll demonstrate in class:
- motor and battery
- using a transistor to turn a motor on and off.
- Arduino code for on and off. Uses digitalWrite().
- Arduino code for varying speed by Pulse Width Modulation (PWM), using analogWrite().
- Arduino code for touch-controlled speed.
Transistor 2n2222 [datasheet](https://circuits-diy.com/2n2222-npn-transistor-datasheet/).
[link to Tinkercad](https://www.tinkercad.com/things/bziQv6UdJry-amazing-jaban/editel?sharecode=XJr9EXHZGiSMJAr8qAye7KZTF-jFCGM0NgS_DxJT4dM)
[Tutorial](https://learn.sparkfun.com/tutorials/transistors/applications-i-switches) from Sparkfun for using a transistor to drive a motor.
Arduino code to ramp motor speeds. [motor_drive.txt](motor_drive.txt)
Arduino code to control motor speed by touch. [touch_motor.txt](touch_motor.txt).