Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com
This free e-book was created with
Ourboox.com

Create your own amazing e-book!
It's simple and free.

Start now

Industry 4.0 Time; Robotic Coding

  • Joined May 2020
  • Published Books 5

This e-book has been prepared as a project collaborative product that includes the work of “mixed school teams”.

We made “arduino” studies as a project study. We used “tinkercad”, one of the web 2.0 tools, in the studies.

Three “mixed school teams” were created.
We created a “guidebook” from the coding practices made by these mixed school teams.

Team 1 

Consultant Teachers:Oya Arslan/Pınar Emir/Angelina Cvetanoska

Students: Matea-Can-İlker-Edanur-Zeynep D.-Hilal-Janette

Team 2   

Consultant Teachers: Seçil Uçum/Yasin Bal/Raul Lara

Students: Izan-Ersel-Özgür-Bennu-Selen-Mustafa

Team 3

Consultant Teachers: Aytül Bal/Medine Yarımkale/Beste Soypak

Students: Timotea-Dinçer-Edanur-Zeynep I.-Zeynep-Onur- Gökmen

2

Contents

Team 1 

Two Leds Sequentially ………………………………………. 3

Thermostat ……………………………………………………….. 5

Led Lighting with Button ……………………………………. 7

Team-2

Led Lighting with Potentiometer ……………………….. 9

Digital Clock ……………………………………………………… 11

Parking Sensor …………………………………………………. 13

Team-3

Calculator ……………………………………………………….. 15

Numerator ………………………………………………………. 17

Signaling System ……………………………………………… 19

Circuit of LCD Screen ………………………………………… 21

 

3

TEAM-1

Lighting Two Leds in Sequence

A List of Materials 
1 Arduino Uno R3
1 Red Led
1 Blue Led
2 Resistors (220 Ω)

Codes

int ledk=8;
int ledm=9;
void setup()
{
pinMode(ledk, OUTPUT);
pinMode(ledm, OUTPUT);
}

void loop()
{
digitalWrite(ledk, HIGH);
digitalWrite(ledm, LOW);
delay(2000);
digitalWrite(ledk, LOW);
digitalWrite(ledm, HIGH);
delay(2000);
}

Explanation 
In our project, it is aimed that 2 leds light up in sequence.
Since the two LEDs will be flashed in sequence, 2 LEDs are taken. One of the LEDs is “red” and the other is “blue”. Two resistors are taken for two leds. Resistors are set to 220 Ω. The long leg of the red led is connected to digital pin 8, the long leg of the blue led is connected to digital pin 9. The short legs of the two leds are also connected to the grounding line. From here it is connected to the GND line on the board. Thus, the circuit is completed.
For coding; text encoding opens. It is coded that the red led is connected to 8 and the blue led to 9. In the “void loop” section, the coding that will create an infinite loop is written. The command “Turn on the red led, turn off the blue led and do this for 2 seconds” is coded. Then the command “Turn on the blue led, turn off the red led and do this for 2 seconds” is coded. Thus, while one turns on, the other goes out, and this cycle continues.

4
Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com

TEAM-1

Thermostat 

Codes

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()

{

pinMode(A0, INPUT);

Serial.begin(9600);

lcd.begin(16, 2);

}

void loop()

{

Serial.println(-40 + 0.488155 *(analogRead(A0) – 20));

lcd.setCursor(0, 1);

lcd.print(-40 + 0.488155 *(analogRead(A0) – 20));

}

6
Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com

TEAM-1

Led Lighting with Button 

Codes

// C++ code

//

void setup()

{

pinMode(12, INPUT);

pinMode(13, OUTPUT);

}

void loop()

{

if (digitalRead(12) == 1) {

digitalWrite(13, HIGH);

} else {

digitalWrite(13, LOW);

} delay(10); // Delay a little bit to improve simulation performance

}

8
Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com

TEAM-2 

Led Lighting with Potentiometer

Codes 

 // C++ code

//

void setup()

{

pinMode(A5, INPUT);

pinMode(12, OUTPUT);

pinMode(8, OUTPUT);

pinMode(5, OUTPUT);

pinMode(2, OUTPUT);

}

void loop()

{

if (analogRead(A5) < 200) {

digitalWrite(12, HIGH);

digitalWrite(8, LOW);

digitalWrite(5, LOW);

digitalWrite(2, LOW);

}

if (analogRead(A5) > 400) {

digitalWrite(12, HIGH);

digitalWrite(8, HIGH);

digitalWrite(5, LOW);

digitalWrite(2, LOW);

}

if (analogRead(A5) > 600) {

digitalWrite(12, HIGH);

digitalWrite(8, HIGH);

digitalWrite(5, HIGH);

digitalWrite(2, LOW);

}

if (analogRead(A5) > 800) {

digitalWrite(12, HIGH);

digitalWrite(8, HIGH);

digitalWrite(5, HIGH);

digitalWrite(2, HIGH);

}

if (analogRead(A5) < 200) {

digitalWrite(12, LOW);

digitalWrite(8, LOW);

digitalWrite(5, LOW);

digitalWrite(2, LOW);

}

delay(10); // Delay a little bit to improve simulation performance

}

10
Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com

TEAM-2

Digital Clock 

Codes

#include <LiquidCrystal.h>

const int rs = 2;

const int en = 3;

const int d4 = 4;

const int d5 = 5;

const int d6 = 6;

const int d7 = 7;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

int h = 12;

int m = 0;

int s = 0;

int flag = 0;

int TIME = 0;

const int hs = 0;

const int ms = 1;

int state1 = 0;

int state2 = 0;

void setup()

{

lcd.begin(16, 2);

pinMode(hs, INPUT_PULLUP);

pinMode(ms, INPUT_PULLUP);

}

void loop()

{

lcd.setCursor(0, 0);

s = s + 1;

lcd.print(“TIME:” );

lcd.print(h);

lcd.print(“:”);

lcd.print(m);

lcd.print(“:”);

lcd.print(s);

if (flag < 12) lcd.print(” AM”);

if (flag == 12) lcd.print(” PM”);

if (flag > 12) lcd.print(” PM”);

if (flag == 24) flag = 0;

delay(1000);

lcd.clear();

if (s == 60)

{

s = 0;

m = m + 1;

}

if (m == 60)

{

m = 0;

h = h + 1;

flag = flag + 1;

}

if (h == 13)

{

h = 1;

}

lcd.setCursor(0, 1);

 

state1 = digitalRead(hs);

if (state1 == 0)

{

h = h + 1;

flag = flag + 1;

if (flag < 12) lcd.print(” AM”);

if (flag == 12) lcd.print(” PM”);

if (flag > 12) lcd.print(” PM”);

if (flag == 24) flag = 0;

if (h == 13) h = 1;

}

state2 = digitalRead(ms);

if (state2 == 0)

{

s = 0;

m = m + 1;

}

}

 

 

12
Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com

TEAM-2

Parking Sensor 

Codes 

int echoPin=6; // Sensörün üzerindeki alıcı(echo) mikrofon pini

int trigPin=7; // Sensörün üzerindeki verici(trig) ses hoparlör pini

int buzzerPin=8; // Engele yaklaştığında öten buzzer pini

float sure,mesafe;  //sure ve mesafe değişkenlerini float(kesirli sayı) veri tipinde tanımlıyoruz.

void setup() {

pinMode(trigPin, OUTPUT); // Giriş ve çıkış pinlerini ayarlıyoruz.

pinMode(echoPin, INPUT);

pinMode(buzzerPin, OUTPUT);

Serial.begin(9600);  //Seri monitörü başlatmak için gerekli parametreyi giriyoruz.

}

void alarm1(){

tone(buzzerPin, 15); // 15 hertzlik sinyal gönderiyoruz.

delay(200);           // 200 msde bir

noTone(buzzerPin);    // sinyali kapatıyoruz

delay(200);

}

void alarm2(){

tone(buzzerPin, 15); // 15 hertzlik sinyal gönderiyoruz.

delay(100);           // 100 msde bir

noTone(buzzerPin);    // sinyali kapatıyoruz

delay(100);

}

void alarm3(){

tone(buzzerPin, 15); // 15 hertzlik sinyal gönderiyoruz.

delay(50);           // 50 msde bir

}

void loop()

{

digitalWrite(trigPin,LOW);//Trig pinini kapatır.

delayMicroseconds(5);

digitalWrite(trigPin, HIGH);// Sensörün Trig pininden uygulanan sinyal 40 kHz frekansında ultrasonik bir ses yayılmasını sağlar.

delayMicroseconds(5);

digitalWrite(trigPin , LOW);//Trig pinini kapatır.

sure = pulseIn(echoPin, HIGH);//Bu ses dalgası herhangi bir cisme çarpıp sensöre geri döndüğünde, Echo pini aktif hale gelir.

mesafe = (sure / 29.1) /2; //Echo pininden alınan değer yani “süre” değeri işlemden geçiriliyor.

Serial.print(“mesafe = “); // Seri monitöre hesaplanan mesafe değerini yazdırıyoruz.

Serial.print(mesafe);

Serial.println(“cm”);

if (mesafe > 100 && mesafe <300 ){

alarm1(); // Eğer ses 100 cm den büyük ve 300 cm den küçükse alarm1 fonksiyonunu çalıştırır.

}

else if (mesafe > 25 && mesafe <=100 ){

alarm2(); // Eğer ses 25 cm den büyük ve 100 cm den küçük veya eşitse alarm2 fonksiyonunu çalıştırır.

}

else if(mesafe > 0 && mesafe <=25){

alarm3();// Eğer ses 0 cm den büyük ve 25 cm den küçük veya eşitse alarm3 fonksiyonunu çalıştırır.

}

delay(300);

}

14
Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com

TEAM-3

Calculator

Codes

#include <Keypad.h>

#include <Wire.h>

#include <LiquidCrystal.h>

LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

long first = 0;

long second = 0;

double total = 0;

char customKey;

const byte ROWS = 4;

const byte COLS = 4;

char keys[ROWS][COLS] = {

{‘1′,’2′,’3′,’+’},

{‘4′,’5′,’6′,’-‘},

{‘7′,’8′,’9′,’*’},

{‘C’,’0′,’=’,’/’}

};

byte rowPins[ROWS] = {7,6,5,4}; //connect to the row pinouts of the keypad

byte colPins[COLS] = {3,2,1,0}; //connect to the column pinouts of the keypad

//initialize an instance of class NewKeypad

Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);

void setup()

{

lcd.begin(16, 2);               // start lcd

for(int i=0;i<=3;i++);

lcd.setCursor(0,0);

lcd.print(“by”);

lcd.setCursor(0,1);

lcd.print(“arda/aytül”);

delay(4000);

lcd.clear();

lcd.setCursor(0, 0);

}

void loop()

{

customKey = customKeypad.getKey();

switch(customKey)

{

case ‘0’ … ‘9’: // This keeps collecting the first value until a operator is pressed “+-*/”

lcd.setCursor(0,0);

first = first * 10 + (customKey – ‘0’);

lcd.print(first);

break;

case ‘+’:

first = (total != 0 ? total : first);

lcd.setCursor(0,1);

lcd.print(“+”);

second = SecondNumber(); // get the collected the second number

total = first + second;

lcd.setCursor(0,3);

lcd.print(total);

first = 0, second = 0; // reset values back to zero for next use

break;

case ‘-‘:

first = (total != 0 ? total : first);

lcd.setCursor(0,1);

lcd.print(“-“);

second = SecondNumber();

total = first – second;

lcd.setCursor(0,3);

lcd.print(total);

first = 0, second = 0;

break;

case ‘*’:

first = (total != 0 ? total : first);

lcd.setCursor(0,1);

lcd.print(“*”);

second = SecondNumber();

total = first * second;

lcd.setCursor(0,3);

lcd.print(total);

first = 0, second = 0;

break;

case ‘/’:

first = (total != 0 ? total : first);

lcd.setCursor(0,1);

lcd.print(“/”);

second = SecondNumber();

lcd.setCursor(0,3);

second == 0 ? lcd.print(“Invalid”) : total = (float)first / (float)second;

lcd.print(total);

first = 0, second = 0;

break;

case ‘C’:

total = 0;

lcd.clear();

break;

}

}

long SecondNumber()

{

while( 1 )

{

customKey = customKeypad.getKey();

if(customKey >= ‘0’ && customKey <= ‘9’)

{

second = second * 10 + (customKey – ‘0’);

lcd.setCursor(0,2);

lcd.print(second);

}

if(customKey == ‘=’) break;  //return second;

}

return second;

}

16
Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com

TEAM-3

Numerator 

Codes 

int a = 2;   //7 segment displayin her bir led elemanını

int b = 3;   // daha rahat kodlama yapabilme amacıyla

int c = 4;   // bağladğımız kapılara denk gelecek şekilde

int d = 5;   // değişken tanımlaması yaptık.

int e = 6;

int f = 7;

int g = 8;

void setup()

{

pinMode(a, OUTPUT); // Pinlerin çıkış pini olduğunu belirtiyoruz.

pinMode(b, OUTPUT);

pinMode(c, OUTPUT);

pinMode(d, OUTPUT);

pinMode(e, OUTPUT);

pinMode(f, OUTPUT);

pinMode(g, OUTPUT);

}

void sifir()            // Rakamları birer fonksiyon olacak şekilde

{                       // tanımladık. Her bir rakam fonksiyonunda

digitalWrite(a,HIGH); // hangi segmentlerin(ledlerin)aktif olacağını

digitalWrite(b,HIGH); // belirttik. Örneğin sifir rakamı için “g”

digitalWrite(c,HIGH); // kapısı hariç diğer ledler açık olacak.

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,LOW);

delay(1000);

}

void bir()

{

digitalWrite(a,LOW);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

delay(1000);

}

void iki()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,LOW);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,LOW);

digitalWrite(g,HIGH);

delay(1000);

}

void uc()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,HIGH);

delay(1000);

}

void dort()

{

digitalWrite(a,LOW);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

delay(1000);

}

void bes()

{

digitalWrite(a,HIGH);

digitalWrite(b,LOW);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

delay(1000);

}

void alti()

{

digitalWrite(a,HIGH);

digitalWrite(b,LOW);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

delay(1000);

}

void yedi()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,LOW);

digitalWrite(e,LOW);

digitalWrite(f,LOW);

digitalWrite(g,LOW);

delay(1000);

}

void sekiz()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,HIGH);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

delay(1000);

}

void dokuz()

{

digitalWrite(a,HIGH);

digitalWrite(b,HIGH);

digitalWrite(c,HIGH);

digitalWrite(d,HIGH);

digitalWrite(e,LOW);

digitalWrite(f,HIGH);

digitalWrite(g,HIGH);

delay(1000);

}

void loop()

{

sifir();delay(200); // İstediğimiz rakamı görüntülemek için o rakamın

bir();delay(200);   // fonksiyonun çağırdık ve uygun bir bekleme süresi

iki();delay(200);   // verdik.

uc();delay(200);

dort();delay(200);

bes();delay(200);

alti();delay(200);

yedi();delay(200);

sekiz();delay(200);

dokuz();delay(200);

}

18
Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com

TEAM-3 

Signaling System

Codes

#define yayaButonu digitalRead(3)

#define aracKirmizi 4

#define aracSari 5

#define aracYesil 6

#define yayaKirmizi 7

#define yayaYesil 8

bool counter = false;

void setup ()

{

pinMode(yayaButonu,INPUT); //Yaya’ların bastığı buton

pinMode(aracKirmizi,OUTPUT); //kırmızı işık (araçlar için)

pinMode(aracSari,OUTPUT); //sarı işık (araçlar için)

pinMode(aracYesil,OUTPUT); //yeşil işık (araçlar için)

 

pinMode(yayaKirmizi,OUTPUT); //kırmızı işık (yayalar için)

pinMode(yayaYesil,OUTPUT); //yeşil işık (yayalar için)

}

void loop()

{

while(!counter) //counter 30 saniye dolmadan true olmuyor bu sayede en az 30 saniye boyunca yeşil ışık yanıyor.

{

for(int i= 0; i<=5; i++)

{

digitalWrite(aracYesil,HIGH);

digitalWrite(yayaKirmizi,HIGH);

if(i == 5)

{

counter = true;

}

delay(1000);

}

}

//30 saniyedir araçlar için yeşil ışık yanıyor.

//Yayalar butona basmadığı sürece araçlar için yeşil, yayalar için kırmızı ışık yanmaya devam ediyor.

if(yayaButonu)

{

//Yayalar butona bastıktan sonra araçlar için yeşilden kırmızıya geçiş, yayalar için kırmızıdan yeşile geçiş olayı başlıyor.

for(int i= 1; i<=3; i++)

{

//Ödevde istenilen [3.1]’e göre araçlar için yeşil ışık 3 saniye boyunca yanıp sönüyor.

digitalWrite(aracYesil,LOW);

delay(500);

digitalWrite(aracYesil,HIGH);

delay(500);

}

//Ödevde istenilen [3.2]’ye göre yeşil ışık sönüyor ve 1 saniye sonra sarı ışık yanmaya başlıyor.

digitalWrite(aracYesil,LOW);

delay(1000);

digitalWrite(aracSari,HIGH);

delay(3000);

//Ödevde istenilen [3.3]’e göre sarı ışık sönüyor ve 15 saniye boyunca araçlar için kırmızı ışık yanıyor.

//Ödevde istenilen [3.4]’e göre yayalar için de yeşil ışık yanıyor.

digitalWrite(yayaKirmizi,LOW);

digitalWrite(aracSari,LOW);

digitalWrite(aracKirmizi,HIGH);

digitalWrite(yayaYesil,HIGH);

delay(15000);

//Ödevde istenilen [4]’e göre;

for(int i= 1; i<=3; i++)

{

// Yaya yeşil ışığı birer saniye aralıklarla 3 kez sönüp yanar.

digitalWrite(yayaYesil,LOW);

delay(500);

digitalWrite(yayaYesil,HIGH);

delay(500);

}

//Yaya yeşil ışığı söner ve 1 saniye sonra yaya kırmızı ışığı yanar.

digitalWrite(yayaYesil,LOW);

delay(1000);

digitalWrite(yayaKirmizi,HIGH);

delay(5000);

//Yaya kırmızı ışığından 5 saniye sonra (2 saniye boyunca) araç sarı ışığı yanar.

digitalWrite(aracSari,HIGH);

delay(2000);

//Araç kırmızı ışığı ve araç sarı ışığı söner ve araç yeşil ışığı yanar.

digitalWrite(aracSari,LOW);

digitalWrite(aracKirmizi,LOW);

counter = false;

}

}

20
Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com

TEAM-3 

Circuit of LCD Screen

Codes

/*

LiquidCrystal Library – Hello World

Demonstrates the use a 16×2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.

This sketch prints “ARDUINO” to the LCD and shows the time.

The circuit:

* LCD RS pin to digital pin 12

* LCD Enable pin to digital pin 11

* LCD D4 pin to digital pin 5

* LCD D5 pin to digital pin 4

* LCD D6 pin to digital pin 3

* LCD D7 pin to digital pin 2

* LCD R/W pin to ground

* LCD VSS pin to ground

* LCD VCC pin to 5V

* 10K resistor:

* ends to +5V and ground

* wiper to LCD VO pin (pin 3)

Library originally added 18 Apr 2008

by David A. Mellis

library modified 5 Jul 2009

by Limor Fried (http://www.ladyada.net)

example added 9 Jul 2009

by Tom Igoe modified 22 Nov 2010

by Tom Igoe

This example code is in the public domain. http://www.arduino.cc/en/Tutorial/LiquidCrystal

*/

// include the library code:

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

// set up the LCD’s number of columns and rows: lcd.begin(16, 2);

// Print a message to the LCD.

lcd.print(“FENERBAHCE”);

}

void loop(){

// set the cursor to column 0, line 1

// (note: line 1 is the second row, since counting begins with 0):

lcd.setCursor(0, 1);

// print the number of seconds since reset:

lcd.print(millis() / 1000);

// delay a bit

delay(50);

}

 

22
Industry 4.0 Time; Robotic Coding by OYA ARSLAN - Ourboox.com
24
This free e-book was created with
Ourboox.com

Create your own amazing e-book!
It's simple and free.

Start now

Ad Remove Ads [X]
Skip to content