次男は私のミニッツ熱に伝染して、ちょっと興味を取り戻しました。
まずは恰好から求める次男らしく、12Cのボディを購入、自分の好きな色に塗ります。
色々、検討した結果 TAMIYAのキャメルイエローに決定。
まずは数回吹いてみましたが、次男の希望通りとの事です。
なぜか写真写りは悪いのですが、希望通りの色です。
明るい黄色だと、違う。。。
オレンジかなと思ったらそれも違うとの事です。
ちょっと、おっさんの雰囲気がありますが、これで恰好良いとの事です。
確かに恰好良い。
まだ塗はじめ、完成するとさらに恰好良くなるはずです。
楽しみだな。
2019年10月14日月曜日
2019年10月12日土曜日
Arduino Pro mini で LED をゆっくり光らせる。
LEDってPWMで調光しても、いきなり光だすのでシリアルから、数字を入れてPWMを調光できるようにしてみました。
とあるサイトからシリアルから数字に変換するプログラミングを流用して9ピンのLEDを光らせてみました。
結果Dutyが1/255でもかなり光る感じです。
シリアルモニターは384の改行なしです。
int led = 9; // the PWM pin the LED is attached to
void setup() {
Serial.begin(38400);
pinMode(led, OUTPUT);
Serial.println("Send value from Serial Monitor");
}
void loop() {
if (KICK_SERIAL())
{
long val;
val = SERIAL_VAL();
Serial.print("original value:");
analogWrite(led, val);
for (byte i = 0 ; i < 10 ; i++)
{
Serial.println(val);
val -= 1;
delay(100);
}
Serial.println();
}
}
bool KICK_SERIAL() {
bool flag = false;
if (Serial.available() > 0)
{
flag = true;
delay(20);
}
return flag;
}
long SERIAL_VAL() {
byte data_size = Serial.available();
byte buf[data_size], degree = 1;
long recv_data = 0, dub = 1;
bool minus = 0;
for (byte i = 0 ; i < data_size ; i++)
{
buf[i] = Serial.read();
if (buf[i] >= '0' && buf[i] <= '9') buf[i] -= '0';
else {
if (buf[0] == '-') minus = 1;
else degree = 0;
}
}
if (degree == 1) degree = data_size - minus;
for (byte i = 0 ; i < degree ; i++)
{
recv_data += buf[(data_size - 1) - i] * dub;
dub *= 10;
}
if (minus) recv_data *= -1;
return recv_data;
}
とあるサイトからシリアルから数字に変換するプログラミングを流用して9ピンのLEDを光らせてみました。
結果Dutyが1/255でもかなり光る感じです。
シリアルモニターは384の改行なしです。
int led = 9; // the PWM pin the LED is attached to
void setup() {
Serial.begin(38400);
pinMode(led, OUTPUT);
Serial.println("Send value from Serial Monitor");
}
void loop() {
if (KICK_SERIAL())
{
long val;
val = SERIAL_VAL();
Serial.print("original value:");
analogWrite(led, val);
for (byte i = 0 ; i < 10 ; i++)
{
Serial.println(val);
val -= 1;
delay(100);
}
Serial.println();
}
}
bool KICK_SERIAL() {
bool flag = false;
if (Serial.available() > 0)
{
flag = true;
delay(20);
}
return flag;
}
long SERIAL_VAL() {
byte data_size = Serial.available();
byte buf[data_size], degree = 1;
long recv_data = 0, dub = 1;
bool minus = 0;
for (byte i = 0 ; i < data_size ; i++)
{
buf[i] = Serial.read();
if (buf[i] >= '0' && buf[i] <= '9') buf[i] -= '0';
else {
if (buf[0] == '-') minus = 1;
else degree = 0;
}
}
if (degree == 1) degree = data_size - minus;
for (byte i = 0 ; i < degree ; i++)
{
recv_data += buf[(data_size - 1) - i] * dub;
dub *= 10;
}
if (minus) recv_data *= -1;
return recv_data;
}
登録:
投稿 (Atom)