F3THZ


    Что вообще за мода такая -- обои на окнах?

    (OS Windows, http://habrahabr.ru/post/254607/)

Еще задачи с Brduino (2015)
***************************

Задача 9. Три кнопки, три лампы
-------------------------------

Описание схемы: Breadboard.java

  import greenfoot.*;

  public class Breadboard extends HiddenWorld
  {
      public Breadboard()
      {
          super();

          addObject( new Bulb( 0),  100, 100);
          addObject( new Bulb( 1),  200, 100);
          addObject( new Bulb( 2),  300, 100);
          addObject( new Button(7), 100, 220);
          addObject( new Button(8), 200, 220);
          addObject( new Button(9), 300, 220);

          addObject( new Arduino(), 1000, 570);
      }
  }

Программа микроконтроллера: Arduino.java

  import greenfoot.*;

  public class Arduino extends Detector
  {
      public void setup() {
          setButtonMode( MOUSE);
      }

      public void loop() {
          digitalWrite( 0, digitalRead(7));
          digitalWrite( 1, digitalRead(8));
          digitalWrite( 2, digitalRead(9));
      }
  }

------------------------------------------------------------------------

Задача 10. Меандр на осциллографе
---------------------------------

Описание схемы: Breadboard.java

  import greenfoot.*;

  public class Breadboard extends HiddenWorld
  {
      public Breadboard()
      {
          super();
          addObject( new Oscilloscope(1),  300, 420);
          addObject( new Arduino(), 1000, 570);
      }
  }

Программа микроконтроллера: Arduino.java

 import greenfoot.*;

  public class Arduino extends Detector
  {
      int OSCSCRWIDTH = 270;
      int x = 0;
      int y = 300;

       public void loop() {
          analogWrite( 1, y = x % 50 == 0 ? -y : y);
          x = (x < OSCSCRWIDTH) ? ++x : 0;
      }
  }

------------------------------------------------------------------------

Задача 11. Семисегментный индикатор
----------------------------------

Индикатор подключен к контактам Arduino D6..D0, две кнопки "<" и ">" к контактам Arduino D7-D8.

Описание схемы: Breadboard.java

  import greenfoot.*;

  public class Breadboard extends HiddenWorld
  {
      public Breadboard()
      {
          super();

          addObject( new Button( 6), 100, 300);
          addObject( new Button( 7), 200, 300);
          addObject( new Big7(),     150, 130);

          addObject( new Arduino(), 1000, 570);
      }
  }

Программа микроконтроллера: Arduino.java

  import greenfoot.*;

  public class Arduino extends Detector
  {
      int x;
      boolean f6, f7;

      int[] i2c = { 0x7e, 0x0c, 0xb6, 0x9e, 0xcc, 0xda, 0xfa, 0x0e,
                    0xfe, 0xde, 0xee, 0xf8, 0x72, 0xbc, 0xf2, 0xe2,
                    0x7a, 0xe8, 0x32, 0x1a, 0xec, 0x70, 0x6c, 0xa8,
                    0xb8, 0xe6, 0xce, 0xa0, 0xd8, 0xf0, 0x7c, 0x38,
                    0xfc, 0x28, 0xdc, 0x92, 0x00, 0x10, 0x80, 0xc6 };

      public void showto7seg( int aChar) {
          for (int i = 1; i < 8; i++)
              digitalWrite( i - 1, ((aChar & (1 << i)) != 0) ? 1 : 0);
      }

      public void setup() {
          x = 0;
          f6 = f7 = true;
          setButtonMode( MOUSE);
          showto7seg( i2c[x]);
      }

      public void loop() {
          boolean d6 = digitalRead( 6) == 1 ? true : false;
          boolean d7 = digitalRead( 7) == 1 ? true : false;

          if ( d6 && f6) {
              x--; x = x < 0 ? 0 : x; f6 = false;
              showto7seg( i2c[x]);
              return;
          }
          if ( !d6) f6 = true;

          if ( d7 && f7) {
              x++; x = x > 39 ? 39 : x; f7 = false;
              showto7seg( i2c[x]);
              return;
          }
          if ( !d7) f7 = true;
      }
  }
