<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sk">
	<id>https://senzor.robotika.sk/sensorwiki/index.php?action=history&amp;feed=atom&amp;title=Main.c</id>
	<title>Main.c - História úprav</title>
	<link rel="self" type="application/atom+xml" href="https://senzor.robotika.sk/sensorwiki/index.php?action=history&amp;feed=atom&amp;title=Main.c"/>
	<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Main.c&amp;action=history"/>
	<updated>2026-04-29T04:32:13Z</updated>
	<subtitle>História úprav pre túto stránku na wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Main.c&amp;diff=6087&amp;oldid=prev</id>
		<title>StudentDVPS: Vytvorená stránka „&lt;source lang=&quot;c&quot;&gt;  /* Si1143 Example */   #define sleep  100 #include &lt;Wire.h&gt; #include &quot;Si1143.h&quot;;  int bias1,bias2,bias3; unsigned int PS1,PS2,PS3; int blinktime,count...“</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Main.c&amp;diff=6087&amp;oldid=prev"/>
		<updated>2016-05-19T08:23:46Z</updated>

		<summary type="html">&lt;p&gt;Vytvorená stránka „&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;  &lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Si1143 Example: &lt;/span&gt;   #define sleep  100 #include &amp;lt;Wire.h&amp;gt; #include &amp;quot;Si1143.h&amp;quot;;  int bias1,bias2,bias3; unsigned int PS1,PS2,PS3; int blinktime,count...“&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* Si1143 Example */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define sleep  100&lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
#include &amp;quot;Si1143.h&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int bias1,bias2,bias3;&lt;br /&gt;
unsigned int PS1,PS2,PS3;&lt;br /&gt;
int blinktime,counter,counter1,counter2,Ledposition;&lt;br /&gt;
unsigned int Light_Reading;&lt;br /&gt;
byte LowB,HighB;&lt;br /&gt;
bool selected;&lt;br /&gt;
unsigned long time;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  delay(25);&lt;br /&gt;
  Wire.begin(); // join i2c bus (address optional for master)&lt;br /&gt;
  delay(25);&lt;br /&gt;
 &lt;br /&gt;
  write_reg(HW_KEY, 0x17); // Setting up LED Power to full&lt;br /&gt;
  write_reg(PS_LED21,0xFF);&lt;br /&gt;
  write_reg(PS_LED3, 0x0F);&lt;br /&gt;
  param_set(CHLIST,0b00010111);&lt;br /&gt;
 &lt;br /&gt;
  char parameter = read_reg(PARAM_RD,1);&lt;br /&gt;
  delay(1000);&lt;br /&gt;
 &lt;br /&gt;
  bias();&lt;br /&gt;
 &lt;br /&gt;
  counter = 0;&lt;br /&gt;
  counter1 = 0;&lt;br /&gt;
  counter2 = 0;&lt;br /&gt;
  selected = 0;&lt;br /&gt;
  StartGame();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  write_reg(COMMAND,0b00000101); // Get a reading&lt;br /&gt;
  delay(5);&lt;br /&gt;
 &lt;br /&gt;
  LowB = read_reg(PS1_DATA0,1); // Read the data for the first LED&lt;br /&gt;
  HighB = read_reg(PS1_DATA1,1);&lt;br /&gt;
  PS1 = ((HighB * 255) + LowB) - bias1;&lt;br /&gt;
 &lt;br /&gt;
  LowB = read_reg(PS2_DATA0,1);  // Read the data for the second LED&lt;br /&gt;
  HighB = read_reg(PS2_DATA1,1);&lt;br /&gt;
  PS2 = (HighB * 255) + LowB - bias2;&lt;br /&gt;
 &lt;br /&gt;
  LowB = read_reg(PS3_DATA0,1);  // Read the data for the third LED&lt;br /&gt;
  HighB = read_reg(PS3_DATA1,1);&lt;br /&gt;
  PS3 = (HighB * 255) + LowB - bias3;&lt;br /&gt;
 &lt;br /&gt;
  Light_Reading = read_light();  &lt;br /&gt;
    if(selected != 1) {&lt;br /&gt;
    if (counter &amp;gt; 5 || counter1 &amp;gt; 5 || counter2 &amp;gt; 5){&lt;br /&gt;
      selected = 0;   &lt;br /&gt;
      &lt;br /&gt;
  }&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   do_magic();&lt;br /&gt;
   &lt;br /&gt;
 &lt;br /&gt;
                                                &lt;br /&gt;
  if (PS1 &amp;lt; 1000 || PS2 &amp;lt; 1000 || PS3 &amp;lt; 1000){&lt;br /&gt;
      if (PS1 &amp;lt; PS2 &amp;amp;&amp;amp; PS1 &amp;lt; PS3){&lt;br /&gt;
          if (selected == 0){&lt;br /&gt;
          counter++;&lt;br /&gt;
          Ledposition = 1;&lt;br /&gt;
          counter1 = 0;&lt;br /&gt;
          counter2 = 0;&lt;br /&gt;
          &lt;br /&gt;
          }&lt;br /&gt;
      }else if(PS2 &amp;gt; PS1 &amp;amp;&amp;amp; PS2 &amp;gt; PS3){&lt;br /&gt;
          if (selected == 0){&lt;br /&gt;
          counter1++;&lt;br /&gt;
          Ledposition = 2;&lt;br /&gt;
          counter = 0;&lt;br /&gt;
          counter2 = 0;&lt;br /&gt;
        }&lt;br /&gt;
      }else if(PS3 &amp;gt; PS1 &amp;amp;&amp;amp; PS3 &amp;gt; PS2){&lt;br /&gt;
          if (selected == 0){&lt;br /&gt;
          counter2++;&lt;br /&gt;
          Ledposition = 3;&lt;br /&gt;
          counter = 0;&lt;br /&gt;
          counter1 = 0;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
      }&lt;br /&gt;
    }else{&lt;br /&gt;
    counter = 0;&lt;br /&gt;
    counter1 = 0;&lt;br /&gt;
    counter2 = 0;&lt;br /&gt;
    selected = 0;&lt;br /&gt;
  } &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
unsigned int read_light(){  // Read light sensor&lt;br /&gt;
  write_reg(COMMAND,0b00000110);&lt;br /&gt;
  delay(sleep);&lt;br /&gt;
  byte LowB = read_reg(ALS_VIS_DATA0,1);&lt;br /&gt;
  byte HighB = read_reg(ALS_VIS_DATA1,1);&lt;br /&gt;
  return (HighB * 255) + LowB;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void param_set(byte address, byte val)  // Set Parameter&lt;br /&gt;
{&lt;br /&gt;
  write_reg(PARAM_WR, val);&lt;br /&gt;
  write_reg(COMMAND, 0xA0|address);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
char read_reg(unsigned char address, int num_data) // Read a Register&lt;br /&gt;
{&lt;br /&gt;
  unsigned char data;&lt;br /&gt;
&lt;br /&gt;
  Wire.beginTransmission(IR_ADDRESS);&lt;br /&gt;
  Wire.write(address);&lt;br /&gt;
  Wire.endTransmission();&lt;br /&gt;
&lt;br /&gt;
  Wire.requestFrom(IR_ADDRESS, num_data);&lt;br /&gt;
 &lt;br /&gt;
  while(Wire.available() &amp;lt; num_data);&lt;br /&gt;
 &lt;br /&gt;
  return Wire.read();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void write_reg(byte address, byte val) {  // Write a resigter&lt;br /&gt;
  Wire.beginTransmission(IR_ADDRESS);&lt;br /&gt;
  Wire.write(address);     &lt;br /&gt;
  Wire.write(val);       &lt;br /&gt;
  Wire.endTransmission();     &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void bias(void){  // Bias during start up&lt;br /&gt;
 &lt;br /&gt;
  for (int i=0; i&amp;lt;20; i++){&lt;br /&gt;
  write_reg(COMMAND,0b00000101);&lt;br /&gt;
  delay(50);&lt;br /&gt;
 &lt;br /&gt;
  byte LowB = read_reg(PS1_DATA0,1);&lt;br /&gt;
  byte HighB = read_reg(PS1_DATA1,1);&lt;br /&gt;
 &lt;br /&gt;
  bias1 += ((HighB * 255) + LowB) / 20;&lt;br /&gt;
 &lt;br /&gt;
  LowB = read_reg(PS2_DATA0,1);&lt;br /&gt;
  HighB = read_reg(PS2_DATA1,1);&lt;br /&gt;
 &lt;br /&gt;
  bias2 += ((HighB * 255) + LowB) / 20;&lt;br /&gt;
 &lt;br /&gt;
  LowB = read_reg(PS3_DATA0,1);&lt;br /&gt;
  HighB = read_reg(PS3_DATA1,1);&lt;br /&gt;
 &lt;br /&gt;
  bias3 += ((HighB * 255) + LowB) / 20;&lt;br /&gt;
} &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void touch_select(){    // just a blink routine for when something is selected&lt;br /&gt;
    switch (Ledposition) {&lt;br /&gt;
         &lt;br /&gt;
      case 1:&lt;br /&gt;
        Serial.println(&amp;quot;Priloz prst k LED1&amp;quot;);&lt;br /&gt;
        time = millis();&lt;br /&gt;
      break;&lt;br /&gt;
      &lt;br /&gt;
      case 2:&lt;br /&gt;
        Serial.println(&amp;quot;Priloz prst k LED2&amp;quot;);&lt;br /&gt;
      break;&lt;br /&gt;
      &lt;br /&gt;
      case 3:&lt;br /&gt;
        Serial.println(&amp;quot;Priloz prst k LED3&amp;quot;);    &lt;br /&gt;
      break;&lt;br /&gt;
      &lt;br /&gt;
    } &lt;br /&gt;
}&lt;br /&gt;
unsigned int PS1_old=0,PS2_old=0, PS3_old=0;&lt;br /&gt;
int diff1=0,diff2=0,diff3=0, sum1=0,sum2=0,sum3=0;&lt;br /&gt;
int rand1 ; &lt;br /&gt;
int aktual=0,timing=0;&lt;br /&gt;
boolean succes=true;&lt;br /&gt;
&lt;br /&gt;
void do_magic(){&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
 &lt;br /&gt;
  diff1 = PS1-PS1_old;&lt;br /&gt;
  diff2 = PS2-PS2_old;&lt;br /&gt;
  diff3 = PS3-PS3_old;&lt;br /&gt;
  diff1=abs(diff1);&lt;br /&gt;
  diff2=abs(diff2);&lt;br /&gt;
  diff3=abs(diff3);&lt;br /&gt;
  &lt;br /&gt;
  PS1_old=PS1;&lt;br /&gt;
  PS2_old=PS2;&lt;br /&gt;
  PS3_old=PS3;&lt;br /&gt;
 &lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  if(diff1&amp;gt;diff2 &amp;amp;&amp;amp; diff1 &amp;gt;diff3){&lt;br /&gt;
     if(sum2&amp;gt;0 || sum3 &amp;gt;0){&lt;br /&gt;
      sum2=0; sum3=0;&lt;br /&gt;
    }&lt;br /&gt;
    sum1=sum1+1;   &lt;br /&gt;
    &lt;br /&gt;
  }else if(diff2&amp;gt; diff1 &amp;amp;&amp;amp; diff2 &amp;gt;diff3){&lt;br /&gt;
     if(sum1&amp;gt;0 || sum2 &amp;gt;0){&lt;br /&gt;
      sum1=0; sum3=0;&lt;br /&gt;
    }&lt;br /&gt;
    sum2=sum2+1;&lt;br /&gt;
    &lt;br /&gt;
  }else if(diff3&amp;gt;diff1 &amp;amp;&amp;amp; diff3&amp;gt;diff2){    &lt;br /&gt;
    if(sum1&amp;gt;0 || sum2 &amp;gt;0){&lt;br /&gt;
      sum1=0; sum2=0;&lt;br /&gt;
    }&lt;br /&gt;
    sum3=sum3+1;&lt;br /&gt;
  }&lt;br /&gt;
if(sum1&amp;gt;0 || sum2&amp;gt;0 || sum3 &amp;gt; 0){&lt;br /&gt;
  if(sum1&amp;gt;4 &amp;amp;&amp;amp; rand1==1){&lt;br /&gt;
    Serial.println(&amp;quot;vybrata je LED1&amp;quot;);&lt;br /&gt;
    sum1=0;&lt;br /&gt;
    succes=true;&lt;br /&gt;
    Serial.println(&amp;quot;Vyhra&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
   if(sum2&amp;gt;4 &amp;amp;&amp;amp; rand1==2){&lt;br /&gt;
    Serial.println(&amp;quot;vybrata je LED2&amp;quot;);&lt;br /&gt;
    sum2=0;&lt;br /&gt;
    succes=true;&lt;br /&gt;
    Serial.println(&amp;quot;Vyhra&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
   if(sum3&amp;gt;4 &amp;amp;&amp;amp; rand1==3){&lt;br /&gt;
      Serial.println(&amp;quot;vybrata je LED3&amp;quot;);&lt;br /&gt;
      sum3=0;&lt;br /&gt;
      succes=true;&lt;br /&gt;
      Serial.println(&amp;quot;Vyhra&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
   if(succes){&lt;br /&gt;
  rand1=random(1,4);&lt;br /&gt;
  &lt;br /&gt;
  if(rand1&amp;gt;=1 &amp;amp;&amp;amp; rand1&amp;lt;2){&lt;br /&gt;
    rand1=1;&lt;br /&gt;
  }else if(rand1&amp;gt;=2 &amp;amp;&amp;amp; rand1&amp;lt;3){&lt;br /&gt;
    rand1 =2;&lt;br /&gt;
  }else{&lt;br /&gt;
    rand1=3;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  time = millis();&lt;br /&gt;
  aktual=time-timing;&lt;br /&gt;
  timing=time;&lt;br /&gt;
  switch(rand1){&lt;br /&gt;
  case 1:&lt;br /&gt;
    Serial.println(&amp;quot;Priloz prst k LED cislo 1&amp;quot;);&lt;br /&gt;
   break;&lt;br /&gt;
   case 2:&lt;br /&gt;
    Serial.println(&amp;quot;Priloz prst k LED cislo 2&amp;quot;);&lt;br /&gt;
  break;  &lt;br /&gt;
   case 3:&lt;br /&gt;
    Serial.println(&amp;quot;Priloz prst k LED cislo 3&amp;quot;);&lt;br /&gt;
  break;&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
   Serial.print(&amp;quot;Time: &amp;quot;);&lt;br /&gt;
   Serial.println(aktual);&lt;br /&gt;
   succes=false;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
delay(10);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void StartGame(){&lt;br /&gt;
Serial.println(&amp;quot;                            HRA: VYBER LED                &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;CIEL: Priloz prst co najrychlejsie k spravnej LEDke senzora podla  zobrazenia na monitore&amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;INSTRUKCIE: Rozlozenie LEDiek na snimaci:&amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;        LED2&amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;         - &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;         - &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;         - &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;         - &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;         - &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;         - &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;         - &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;         - &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;         - &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;        LED1 -------------------- LED3 &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot; &amp;quot;);&lt;br /&gt;
Serial.println(&amp;quot;Hra zacne prilozenim prstu k  LED3 na senzore &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>StudentDVPS</name></author>
	</entry>
</feed>