Käyttäjän työkalut

Sivuston työkalut


arduino

2x2x2 LED-kuutio

 2x2x2 LED-kuutio

2x2x2 LED-kuution ohjaaminen on vielä helpohkoa.

Tässä esitetty koodi on versio 1. Tätä voi yksinkertaistaa silmukoita ja funktioita käyttämällä.

void setup() {
 
    // Mihin LEDit on kytketty
    // Tämä ei ole näppärin tapa tehdä tätä, osaavat voivat käyttää for-silmukkaa
 
    pinMode(3, OUTPUT);    
    digitalWrite(3, LOW);
 
    pinMode(4, OUTPUT);    
    digitalWrite(4, LOW);
 
    pinMode(5, OUTPUT);    
    digitalWrite(5, LOW);
 
    pinMode(6, OUTPUT);    
    digitalWrite(6, LOW);
 
    pinMode(7, OUTPUT);    
    digitalWrite(8, LOW);
 
    pinMode(9, OUTPUT);    
    digitalWrite(9, LOW);
 
    pinMode(10, OUTPUT);    
    digitalWrite(10, LOW);
 
    pinMode(11, OUTPUT);    
    digitalWrite(12, LOW);
 
    // Mihin transistorit on kytketty
 
    pinMode(13, OUTPUT);    
    digitalWrite(13, LOW);
 
    pinMode(14, OUTPUT);    
    digitalWrite(14, LOW);
 
    pinMode(15, OUTPUT);    
    digitalWrite(16, LOW);
}
 
void loop() {
    // Sytytetään pylvään 1 tason 1 LED
    digitalWrite(3, HIGH); 
    digitalWrite(13, HIGH);
    delay(500);
 
    // Sammutetaan pylvään 1 tason 1 LED
    digitalWrite(3, LOW); 
    digitalWrite(13, LOW);
    delay(500);
 
}

4x4x4 LED-kuution ohjaus

 4x4x4 LED kuutio

 Transistorit saa kauniisti, kun osaa

 Samoin vastukset

Osoitteesta https://youtu.be/gO_9kC0pbzA löydät Youtube-videon kuutiosta.

int pylvaat[]={2, 3, 4, 5, 6, 7, 8, 9, 10};
int tasot[]={11, 12, 13};
 
void setup() {
  for (int i=0; i<=13; i++)
  {
    pinMode(i, OUTPUT);    
    digitalWrite(i, LOW);
  }
}
 
void loop() {
  //sytyta(1, 1);
  vilauta(0 , 0, 5); 
  vilauta(4 , 1, 5); 
  vilauta(8 , 2, 5); 
  delay(500);
 
  vilauta_taso(1, 500);
  delay(500);
}
 
// Sytytetään päälle pylvään ja tason määrittelemä LED
// HUOMAA, että LED jää päälle!
 
void sytyta(int pylvas, int taso)
{
   digitalWrite(pylvaat[pylvas], HIGH); 
   digitalWrite(tasot[taso], HIGH);
}
 
// Vilautetaan annetun ajan LEDiä
 
void vilauta(int pylvas, int taso, int aika)
{
   digitalWrite(pylvaat[pylvas], HIGH); 
   digitalWrite(tasot[taso], HIGH);
   delay(aika);
   digitalWrite(pylvaat[pylvas], LOW); 
   digitalWrite(tasot[taso], LOW);
 
}
 
void vilauta_taso(int taso, int aika)
{
   digitalWrite(tasot[taso], HIGH); 
 
   for (int i=0; i<9; i++)
   {
      digitalWrite(pylvaat[i], HIGH);
   }
   delay(aika);
 
   digitalWrite(tasot[taso], LOW); 
   for (int i=0; i<9; i++)
   {
      digitalWrite(pylvaat[i], LOW);
   }
 
}

Moottorin ohjaus

 Servomoottori

#include <AFMotor.h>
 
AF_DCMotor moottori(3); 
AF_DCMotor ohjaus(1);
 
void setup() {
  ohjaus.setSpeed(255);
}
 
void loop() {
/*  moottori.setSpeed(100); // hidas kiihdytys
  moottori.run(FORWARD);    
  delay(1000);
*/
  ohjaus.setSpeed(255);
  ohjaus.run(BACKWARD);
 
  moottori.setSpeed(255);
  moottori.run(FORWARD);    
  delay(1000);
 
  moottori.run(RELEASE); 
  ohjaus.run(RELEASE);
  delay(1000);
 
/*  moottori.setSpeed(100);  // hidas kiihdytys
  moottori.run(BACKWARD);    
  delay(1000);
*/
  moottori.setSpeed(255);
  moottori.run(BACKWARD);    
 
  ohjaus.run(FORWARD);
  delay(1000);
 
  moottori.run(RELEASE); 
  ohjaus.run(RELEASE);
  delay(1000);
 
}
arduino.txt · Viimeksi muutettu: 2016/03/17 21:36 / moversti