// program, prebere 3 znake (ASCII koda), ki jih pretvorimo v številčno vrednost
/*
int ledPin = 11;
int utrip = 0;
int vrednost;
void setup() {
Serial.begin(115200);;
Serial.println("Vpiši število: ");
pinMode(ledPin, OUTPUT);
}
void loop() {
if (Serial.available()) { // available() se uporablja za preverjanje če pride kakšen znak v mikrokontroler
char znak = Serial.read();
if (znak >= '0' && znak <= '9') { // '0' = 48 '' je za znak oz. za črke
vrednost = (vrednost * 10) + (znak - '0');
}
else if (znak == 10) { // ENTER po ASCII = '10'
utrip = vrednost;
Serial.println(utrip);
vrednost = 0;
}
}
utripanje(utrip);
}
void utripanje(int x) {
digitalWrite(ledPin, HIGH);
delay(x);
digitalWrite(ledPin, LOW);
delay(x);
}
*/
// z uporabo SWITCH CASE stavka
// 1 - izpiše se 1 - utrip 1x
// 2 - izpiše se 2 - utrip 2x
// + - izpiše se + - LED turn on
// - - izpiše se - - LED turn off
/*
int ledPin = 11;
void setup() {
Serial.begin(115200);
Serial.println("Vpiši število: ");
pinMode(ledPin, OUTPUT);
}
void loop() {
if (Serial.available()) {
char znak = Serial.read();
switch(znak) {
case '1':
Serial.println("ena");
utripanje();
break;
case '2':
Serial.println("dve");
utripanje();
utripanje();
break;
case '+':
Serial.println("+");
digitalWrite(ledPin, HIGH);
break;
case '-':
Serial.println("-");
digitalWrite(ledPin, LOW);
break;
default:
Serial.println("Ni pravi znak.");
break;
}
}
}
void utripanje() {
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(ledPin, LOW);
delay(250);
}*/
// Preko serijskega porta preberi niz znakov in jih zapiši v seznam (tipa)
// Končni seznam pretvori v celo število
/*
int ledPin = 11;
int utrip = 0;
char seznam[6]; // seznam znakov
int index = 0; //indeks seznama
void setup() {
Serial.begin(115200);
Serial.println("Vpiši niz števil:");
pinMode(ledPin, OUTPUT);
}
void loop() {
if (Serial.available()) {
char znak = Serial.read();
if (index < 5 && znak >= '0' && znak <= '9') {
seznam[index++] = znak;
}
else {
seznam[index] = 0;
utrip = atoi(seznam); // pretvorba STR -> INT
Serial.println(utrip);
index = 0;
}
}
utripanje(utrip);
}
void utripanje(int x) {
digitalWrite(ledPin, HIGH);
delay(x);
digitalWrite(ledPin, LOW);
delay(x);
}
*/
/*
// Preberi 3 števila, ki so ločena z vejico (oblika zapisa: 45,123,66)
#define SEZNAMstevil 3
int seznamIndex = 0; // indeks posameznega števila ločenega z vejico
int stevilo[SEZNAMstevil]; // seznam v katerega zapisemo vsa števila
void setup() {
Serial.begin(115200);
Serial.println("Vpiši 3 števila, ločena z vejico:");
}
void loop() {
if (Serial.available()) {
char znak = Serial.read();
if (znak >= '0' && znak <= '9') {
stevilo[seznamIndex] = (stevilo[seznamIndex] * 10) + (znak - '0');
}
else if (znak == ',') {
if (seznamIndex < (SEZNAMstevil -1)) seznamIndex ++;
}
else {
Serial.print("Seznam števil: ");
Serial.println(seznamIndex + 1);
for (int i = 0; i < seznamIndex; i++) {
Serial.println(stevilo[i]);
stevilo[i] = 0; // lahko preberemo naslednji niz števil
}
seznamIndex = 0; // preberemo nova 3 števila
}
}
}
*/
/*
// Program prebere iz predpomnilnika serijske komunikacije znak ( ASCII ), če prebere znak:
// Prebrane znake pretvorimo številčno vrednost i jo izpišemo na
// Vrednost določa frekvenco utripanja LED diode
#define LED 11
int vrednost = 0;
void setup() {
Serial.begin(115200);
Serial.println("Vpiši število: ");
pinMode(LED, OUTPUT);
}
void loop() {
static int m = 0;
if (Serial.available()) {
char znak = Serial.read();
if (znak >= '0' && znak <= '9') {
vrednost = (vrednost * 10) + (znak - '0');
}
else if (znak == 10) {
Serial.println(vrednost);
m = vrednost;
vrednost = 0;
}
}
utripanje(m);
}
void utripanje(int x) {
digitalWrite(LED, HIGH);
delay(x);
digitalWrite(LED, LOW);
delay(x);
}
*/
// Podobno kot zgornja naloga, vendar z omejitvijo vnosa MAX 5 znakov
#define LED 11
#define MAX 5 // 5 prebranih znakov
int vrednost = 0;
int indeks = 0; // indeks seznama
char seznam[6];
int utrip = 0;
void setup() {
Serial.begin(115200);
Serial.println("Vpiši število: ");
pinMode(LED, OUTPUT);
}
void loop() {
if (Serial.available()) {
char znak = Serial.read();
if (znak >= '0' && znak <= '9' && indeks < MAX) {
seznam[indeks] = znak;
indeks++;
}
else {
seznam[indeks] = 0; // seznam zaključimo z NULL terminatorjem
utrip = atoi(seznam);
Serial.println(utrip);
indeks = 0; // prepišemo znake v seznamu z novim vnosom
}
}
utripanje(utrip);
}
void utripanje(int x) {
digitalWrite(LED, HIGH);
delay(x);
digitalWrite(LED, LOW);
delay(x);
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
r1:1
r1:2
led1:A
led1:C