Operácie

Holografické hodiny: Rozdiel medzi revíziami

Z SensorWiki

Riadok 65: Riadok 65:
  
 
'''Schéma zapojenia Arduina s RTC modulom'''
 
'''Schéma zapojenia Arduina s RTC modulom'''
[[Súbor:ArduinoRTC.png|center|300px]]
+
[[Súbor:Arduino.png|center|300px]]
  
 
[[Súbor:Example.jpg]]
 
[[Súbor:Example.jpg]]
Riadok 83: Riadok 83:
  
 
<source lang="c">
 
<source lang="c">
/* A nezabudnite zdroják hojne komentovať */
+
/* Na začiatku sme si museli includnuť knižnice , ktoré budeme potrebovať */
  
 
#include <Wire.h>
 
#include <Wire.h>
Riadok 97: Riadok 97:
 
                         // LDR leg 2 to GND and leg 2 of the 10K to 5V
 
                         // LDR leg 2 to GND and leg 2 of the 10K to 5V
  
 +
// pole čísel nám znázorňuje sučet čisiel, ktoré LEDKY sa nám rozsvietia aby vykreslili čislo
 
const int digits[10] = {63, 6, 91, 79, 102, 109, 125, 7, 127, 111};  
 
const int digits[10] = {63, 6, 91, 79, 102, 109, 125, 7, 127, 111};  
 +
void setup() {
 +
  Serial.begin(9600);
 +
 +
  //set pins to output so you can control the shift register
 +
  pinMode(latchPin, OUTPUT);
 +
  pinMode(clockPin, OUTPUT);
 +
  pinMode(dataPin, OUTPUT);
 +
 +
  Wire.begin();
 +
  RTC.begin();
 +
  if (! RTC.isrunning()) {
 +
    RTC.adjust(DateTime(__DATE__, __TIME__));
 +
  } // end if
 +
} // end void setup
 +
 +
 +
void loop() {
 +
  // RTC nám zistí  reálny čas odkedy sme ho setli
 +
  DateTime now = RTC.now();
 +
  int thehour = now.hour();
 +
 +
  int hour_tens = thehour / 10;
 +
  int hour_ones = thehour % 10;
 +
 +
  int minute_tens = now.minute() / 10;
 +
  int minute_ones = now.minute() % 10;
 +
 +
  //Vypis na overenie či nám ide správne čas
 +
  Serial.print(now.hour());
 +
  Serial.print(":");
 +
  Serial.print(now.minute());
 +
  Serial.print(":");
 +
  Serial.print("\n");
 +
  digitalWrite(latchPin, LOW);
 +
  shiftOut(dataPin, clockPin, MSBFIRST, digits[hour_tens]);
 +
  shiftOut(dataPin, clockPin, MSBFIRST, digits[hour_ones]);
 +
  shiftOut(dataPin, clockPin, MSBFIRST, digits[minute_tens]);
 +
  shiftOut(dataPin, clockPin, MSBFIRST, digits[minute_ones]);
 +
 +
 +
  //rozsvietenie LED
 +
  digitalWrite(latchPin, HIGH);
 
}
 
}
 
</source>
 
</source>

Verzia zo dňa a času 06:49, 25. máj 2018

Autori: Adriána Selepová, Oliver Lachkovič
Študijný odbor: Aplikovaná informatika 3. Bc. (2018)

Opis projektu

Cieľom tohto projektu bolo vytvoriť tzv. Holografické hodiny.

Prečo?

  1. Tento projekt nás zaujal na základe digitrónov alebo inač nazývaných číslicových výbojek.Kdedže digitróny sú elektronické súčiastky ,plynom plnené výbojky so studenou katódou, bolo by to pre nás veľmi obtiažne niečo také vyrobiť, našli sme alternatívu ako niečo také napodobniť.

Využité technológie

  • Laserový vyrezávač
  • Arduino Uno
  • RTC

Material

  1. 28 x vygravirované plexisklo
  2. Preglejková krabička
  3. Arduino Uno, RTC modul
  4. BreadBoard,prepojovacie káble
  5. 4 x ShiftOut registre

Návod

V návode v krátkosti popisané základné kroky prípravy a zhotovenia produktu:

  • Návrh 7 segmentových plexisiek
  • Návrh krabičiek
  • Vyrezanie potrebných materiálov : 28 plexiskiel vygravírovaných podľa 7 segmentov na displeji, drevená krabička na osadenie čísel
  • Zapojenie potrebnej elektroniky
  • Naprogramovanie hodiniek
  • Osadenie naprogramovanej a zapojenej dosky do krabicky


MojObrazok2.jpg

Médiá:MojZdrojak.c


Použité zdroje:

  • Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.

Analýza

V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:

  • popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.)
  • obrázok zapojenia vývodov použitej súčiastky
  • odkaz na katalógový list
  • priebehy dôležitých signálov
  • este jedna polozka


Popis riešenia

Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru (nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.

Schéma zapojenia Arduina s RTC modulom

Arduino.png

Súbor:Example.jpg

Pozn.: Názov obrázku musí byť jedinečný, uvedomte si, že Obr1.jpg už pred vami skúsilo nahrať už aspoň 10 študentov.

MojObrazok.jpg

Algoritmus a program

Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.

Vyberte podstatné časti zdrojového kódu, použite na to prostredie source:

/* Na začiatku sme si museli  includnuť knižnice , ktoré budeme potrebovať */

#include <Wire.h>
#include <RTClib.h>


RTC_DS1307 RTC;

const int dataPin = 11;  // arduino pin 12 to TPIC6B595 pin 3 serial in (SER IN)
const int latchPin = 8; // arduino pin 10 to TPIC6B595 pin 12 latch signal (RCK)
const int clockPin = 12;  // arduino pin 9 to TPIC6B595 pin 13 clock (SRCK)
const int ldrIn = A0;    // arduino pin A0 to leg 1 of the LDR as well as leg 1 of a 10K resistor
                         // LDR leg 2 to GND and leg 2 of the 10K to 5V

// pole čísel nám znázorňuje sučet čisiel, ktoré LEDKY sa nám rozsvietia aby vykreslili čislo
const int digits[10] = {63, 6, 91, 79, 102, 109, 125, 7, 127, 111}; 
void setup() {
  Serial.begin(9600);

  //set pins to output so you can control the shift register
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);

  Wire.begin();
  RTC.begin();
  if (! RTC.isrunning()) {
    RTC.adjust(DateTime(__DATE__, __TIME__));
  } // end if
} // end void setup


void loop() {
   // RTC nám zistí  reálny čas odkedy sme ho setli
  DateTime now = RTC.now();
  int thehour = now.hour();

  int hour_tens = thehour / 10;
  int hour_ones = thehour % 10;

  int minute_tens = now.minute() / 10;
  int minute_ones = now.minute() % 10;

  //Vypis na overenie či nám ide správne čas
  Serial.print(now.hour());
  Serial.print(":");
  Serial.print(now.minute());
  Serial.print(":");
  Serial.print("\n");
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, MSBFIRST, digits[hour_tens]);
  shiftOut(dataPin, clockPin, MSBFIRST, digits[hour_ones]);
  shiftOut(dataPin, clockPin, MSBFIRST, digits[minute_tens]);
  shiftOut(dataPin, clockPin, MSBFIRST, digits[minute_ones]);


  //rozsvietenie LED
  digitalWrite(latchPin, HIGH);
}

Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!

Zdrojový kód: serial.h a main.c

program.c


Výsledok

Nezabudnite zdokumentovať výsledok vašej práce. Určite sem patria fotografie, video a zhodnotenie ako ste spokojní s výsledkom,

Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.