超音波センサー(HC-SR04) 割り込み コード, Ultrasonic sensor(HC-SR04) intterupt Source code

int Trig[5] = {100, 28, 36, 44, 52};
int Echo[5] = {100, 21, 20, 19, 18};

unsigned long Distance[5] = {0};
unsigned long Duration[5] = {0};

volatile unsigned long LastPulseTime1;
volatile unsigned long LastPulseTime2;
volatile unsigned long LastPulseTime3;
volatile unsigned long LastPulseTime4;

int iTemperature = 20;
int UltraVelocity = 330 + (0.6 * iTemperature);
int K = UltraVelocity * 0.0005;

void setup() {

Serial.begin(9600); // Starts the serial communication

for (int i = 1; i <= 4; i ++)
{
pinMode(Trig[i],OUTPUT);
}

for (int i = 1; i <= 4; i ++)
{
pinMode(Echo[i],INPUT);
}

attachInterrupt(2, EchoPin1_ISR, CHANGE);
attachInterrupt(3, EchoPin2_ISR, CHANGE);
attachInterrupt(4, EchoPin3_ISR, CHANGE);
attachInterrupt(5, EchoPin4_ISR, CHANGE);
}

void loop() {

for ( int i = 1; i <= 4; i ++)
{
  delay(20);
  digitalWrite(Trig[i], HIGH);
  delayMicroseconds(10);
  digitalWrite(Trig[i], LOW);

}

int sensorValue0 = analogRead(A0);
int sensorValue1 = analogRead(A1);
int sensorValue2 = analogRead(A2);

for (int i = 1; i <= 4; i ++)
{
  Distance[i] = Duration[i] * 330 * 0.0005;
  Serial.print(Distance[i]);
  Serial.print(“. “);
}

  Serial.print(sensorValue0);
  Serial.print(“. “);
  Serial.print(sensorValue1);
  Serial.print(“. “);
  Serial.print(sensorValue2);
  Serial.println(” “);
}

void EchoPin1_ISR() {
    static unsigned long startTimeA;

    if (digitalRead(21))
        startTimeA = micros();
    else
        Duration[1] = micros() – startTimeA;
}

void EchoPin2_ISR() {
    static unsigned long startTimeB;

    if (digitalRead(20))
        startTimeB = micros();
    else
        Duration[2] = micros() – startTimeB;
}

void EchoPin3_ISR() {
    static unsigned long startTimeC;

    if (digitalRead(19))
        startTimeC = micros();
    else
        Duration[3] = micros() – startTimeC;
}

void EchoPin4_ISR() {
    static unsigned long startTimeD;

    if (digitalRead(18))
        startTimeD = micros();
    else
        Duration[4] = micros() – startTimeD;
}

Arduino 연습

// Sensor

int S1Echo = 2;
int S1Trig = 3;
int S2Echo = 8;
int S2Trig = 9;

// Relay
int R1 = 50;
int R2 = 51;
int R3 = 52;
int R4 = 53;

//Variable
//Distance
int iS1Distance;
int iS1Duration;
int iS2Distance;
int iS2Duration;

int D1 = 500;
int D2 = 1000;

//State
int iS1State;
String sS1State;
int iS2State;
String sS2State;

//Temperature
int iTemperature = 30;

//Time
int iStartTime;
int iFinishTime;
int iTactTime;

void setup() {
  // put your setup code here, to run once:

Serial.begin(9600);
pinMode(S1Echo, INPUT);
pinMode(S1Trig, OUTPUT);
pinMode(S2Echo, INPUT);
pinMode(S2Trig, OUTPUT);
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(R3, OUTPUT);
pinMode(R4, OUTPUT);

}

void loop() {

iStartTime = millis();
delay(30);

digitalWrite(S1Trig, HIGH);
delayMicroseconds(10);
digitalWrite(S1Trig, LOW);

iS1Duration = pulseIn(S1Echo, HIGH, 14000);
iS1Distance = (330 + (0.6 * iTemperature)) * iS1Duration * 0.0005;

delay(30);

digitalWrite(S2Trig, HIGH);
delayMicroseconds(10);
digitalWrite(S2Trig, LOW);

iS2Duration = pulseIn(S2Echo, HIGH, 14000);
iS2Distance = (330 + (0.6 * iTemperature)) * iS2Duration * 0.0005;

if (iS1Distance > 0 && iS1Distance <= D1) {
iS1State = 11;
sS1State = “ST”;
}

else if (iS1Distance > D1 && iS1Distance <= D2){
iS1State = 12;
sS1State = “DC”;
}

else {
iS1State = 10;
sS1State = “CV”;
}

if (iS2Distance > 0 && iS2Distance <= D1) {
iS2State = 21;
sS2State = “ST”;
}

else if (iS1Distance > D1 && iS1Distance <= D2){
iS2State = 22;
sS2State = “DC”;
}

else {
iS2State = 20;
sS2State = “CV”;
}

switch (iS1State) {
  case 11:
  digitalWrite(R1, HIGH);
  digitalWrite(R2, LOW);
  break;

  case 12:
  digitalWrite(R1, LOW);
  digitalWrite(R2, HIGH);
  break;

  case 10:
  digitalWrite(R1, LOW);
  digitalWrite(R2, LOW);

}

switch (iS2State) {
  case 21:
  digitalWrite(R3, HIGH);
  digitalWrite(R4, LOW);
  break;

  case 22:
  digitalWrite(R3, LOW);
  digitalWrite(R4, HIGH);
  break;

  case 20:
  digitalWrite(R3, LOW);
  digitalWrite(R4, LOW);

}

iFinishTime = millis();

iTactTime = iFinishTime – iStartTime;

Serial.print(“TactTime : “);
Serial.print(iTactTime);
Serial.print(”    “);
Serial.print(“S1 : “);
Serial.print(iS1Distance);
Serial.print(”    “);
Serial.print(“S2 : “);
Serial.print(iS2Distance);
Serial.print(”    “);
Serial.print(“S1State : “);
Serial.print(iS1State);
Serial.print(”    “);
Serial.print(“S2State : “);
Serial.println(iS2State);
}

아두이노 인터럽트 핀 번호

Board                                                    INT.0     INT.1     INT.2     INT.3     INT.4     INT.5

우노, 나노 미니, 기타 328-기반             2           3

메가, 메가2560, 메가  ADK                   2           3            18         19          20          21


Micro, Lonardo, other 32u4-based        0, 1, 2, 3, 7


Zero(제로)                                             all digital pins, except 4


MKR Family boards                              0, 1, 4, 5, 6, 7, 8, 9, A1, A2


Due(듀에)                                              all digital pins


101                                                        all digital pins

                                                              (Only pins 2, 5, 7, 8, 10, 11, 12, 13 work with
                                                              CHANGE)




Arduino 인터럽트 핀 번호, 배선이나 설정이 틀린 경우도 많으니 인터럽트를 사용 했는데


신호를 잘 받지 못한다면 한번 더 확인 해보기

일본간장 이야기

간만에 스시를 먹으로 나갔다.
집집마다 개성이 강한 일본 초밥집
도쿄를 떠나서 처음 먹는 초밥 이기도 하고 오랜만에 스시다.

스시집에 간장이 두개나 놓여져 있는데
규슈 남쪽(쿠마모토)쪽에는 간장이 정말 달달하다.

달달한 다시에 푹신하고 부드럽게 말아 샤리에 올린 타마고스시에
특유의 감칠맛이 넘치고 달달한 쿠마모토 간장을 찍어먹으면 다른 곳 에서는
전혀 맛 볼수 없는 쿠마모토 지역의 고유의 맛을 느낄 수 있다.

삼성물산과 제일모직 합병과 국민연금

당시 제일모직과 삼성물산 단타로 점심 값 벌어보겠다고 매매창과 뉴스를 보고 있었었다.
삼성에 있어서는 삼성전자의 지배와 순환구조 해소와 지주회사 전환을 위해 제일모직과
삼성물산의 합병은 필수적이고 삼성의 지배구조에 관심이 있었다면 예상된 수순

삼성은 제일모직과 삼성물산의 시너지 효과를 위한다는 명분과

엘리엇은 삼성물산이 저 평가되어있어 제일모직과 합병시 삼성물산이 손해라는 이유로

합병을 반대

겉으로 보면 둘다 그럴싸 하지만 실상은
삼성은 제일모직을 중심으로한 이재용의 지배력강화와 지주회사 전환
엘리엇과 해지펀트, 소액주주는 시세 차익과 삼성과 삼성전자 흔들기…
그런데 삼성의 힘만으로는 합병이 불가능하고 소액주주와 국민연금의 지지가 반드시 필요한 상황…

삼성의 경우 합병이 실패하면 삼성전자를 날려먹는 사태가 발생하기에 엘리엇을 나쁜 해외자본과 애국프레임을 짜고 주주에게 호소하는 한편 1주라도 위임장을 얻기위해 내부자들이 수박들고 뛰어댕겼다는 말이 도는걸로 봐서는 삼성도 상당히 쫄린 모양

엘리엇 같은 경우도 소액주주를 설득하기에 안간힘을 쓰고 이번 합병이 이루어 질 경우 국제재판 까지 끌고 갈거란 결의를 다지긴 하는데….
합병비율, 삼성물산의 주가조정, 15년(14년인가?)에 뜬금없이 상장된 제일모직의 이야기는 살포시 접어주자 꺼내더라도 바뀌는것도 없거니와 이미 여러의미에서 이미 끝난 일 이다.
국민연금이 왜?! 이재용의 지배력 강화시키는 삼성의 순환출자의 개선을 위한 지주회사 전환에 손을 들어 줬냐는 것인데… 정경 유착과 정치적문제가 섞인게 아니냐 싶지만
정치적 관점을 빼고 돈의 관점으로
개인투주자에서 국민연금의 입장으로 돌려 보면 그냥 답이 나옴
국민연금은 초장기적인 투자를 해야하는 기관인데
삼성의 합병 반대 후 삼성물산 주가차익을 노린다? 절대 불가능 함 오히려 엘리엇에게

털리고 동력을 잃어버린 회사의 주식만 남게됨

차라리 지주회사 전환으로 안정적인 구조의 전환으로 희망하는 삼성의 편을 들어주는 편이 훨 씬 더 나음
정치적 논점을 빼고 국민연금의 입장에서 보더라도 그냥 이미 답은 정해져 있는 상황
그런데 국민연금과 삼성과 최모씨를 묶어가며 삼성을 털려는걸 보면 참…. 

AKANE (安果音) – 奏 (韓国語 反訳)

原曲 : スキマスイッチ (Sukima Switch) – 


改札の前 ぐ手と手 
개찰구 앞에서 잡은 손과손
いつものざわめき, 新しい風 
 평소와 다름없는 웅성거림 새로운 바람 
明るく見送るはずだったのに 
밝은 모습으로 떠나보내려 했는데
うまく笑えずに君を見ていた 
자연스럽게 웃지 못한 너를 보고있었어
君が大人になってその季節が 
네가 어른이 되어가는 그 계절이
悲しい歌で溢れないように 
슬픈 노래로 흘러 넘치지 않도록 
最後に何か君にえたくて 
마지막으로 뭔가 너에게 전하고 싶어서
「さよなら」に代わる言葉を僕は探してた 
「안녕」을 대신할 말을 나는 찾고 있었어 
君の手を引くその役目が 
너의 손을 끌어당기는 역할이
僕の使命だなんてそう思ってた 
사명이라고 그렇게 생각 했었어
だけど今わかったんだ僕らならもう
하지만 지금 알았어, 우리들이라면 이젠 
重ねた日がほら 導いてくれる 
함께했던 날들이 이끌어 주잖아

君が大人になってその時間が 
네가 어른이 되어가는 그 시간이
降り積もる間に僕もわってく 
내려쌓이는 사이 나도 변해가
たとえばそこにこんな歌があれば 
만약 그곳에 이런 노래가 있다면
2人はいつもどんな時もつながって行ける 
우리는 언제 어느 때라도 이어질 수 있어 
突然ふいに鳴り響くベルの音 
갑자기 울려 퍼지는 벨소리 
焦る僕解ける手離れてく君 
초조한 풀어지는 멀어지는
夢中で呼び止めて抱きしめたんだ
정신없이 불러 세워 끌어안았던 거야
君がどこに行ったって僕ので守  
네가 어디에 있다해도 내 목소리로 지켜줄게 
君が僕の前に現れた日から 
네가 내 앞에 나타난 날부터 
何もかもが違くみえたんだ 
모든 게 달라 보였던 거야 
朝も光もも歌う 
아침도 빛도 눈물도 노래하는 목소리도 
君が輝きをくれたんだ 
네가 찬란함을 줬던 거야 
抑えきれない思いをこの 
억누를 수 없는 마음을 이 목소리에 실어 
遠く君の街へけよう
멀리 네가 있는 곳으로 보내 
たとえばそれがこんな歌だったら 
만약 그게 이런 노래라면 
僕らはどこにいたとしても 
우리들은 어디에 있다해도 
がって行ける
이어질 수 있어

대한민국의 전세값으로 부동산의 미래

예전부터 전세값이 조금씩 올라 집값대비 전세값이 상당하고
심지어 집값보다 전세값이 더 높게 형성되기도 하는데 이를 두고
정부에서 나서서 전세값을 잡아달라는 목소리가 커지고 있는데 가능 할지 써볼려고 한다.
전세란?
일정한 보증금을 집주인에게 맡긴뒤 부동산을 빌려쓰고 계약기간이 끝나면 보증금을
돌려받고 부동산을 돌려주는 형식인데 전세계에서 한국을 포함한 몇몇 국가만 있는
아주 독특한 주거방식이면서 돈을 주고 쓰는 임차인이 유리한 방식이라고 할 수 있지
전세, 매매 상승률
a)
전세, 매매가는 꾸준히 상승과 하락을 반복하면서 상승 해왔는데
최근에는 매매가보다 전세가 상승률이 더 커졌기에 전세 수요자들은 불만이 나올꺼야
그러면 전세가를 잡을 수 있을까?
먼저 전세가 생겼던 이유를 알아보도록 해
대출 3000 전세 2000 넣어버리면 5000으로 1억 짜리 집을 살 수 있고
집값 상승분은 임차인의 이득이 되는거야
어?? 전세금을 은행에 예치해서 이자 받아먹는거 아니였어요??
빚 없이 부동산을 소유하고 있는 다 주택자의 경우 이자와 집값 상승을 노리는 것이고
투자의 경우 최대한 비싼매물을 사야 최대의 효과를 누릴 수 있어 틀린 말은 아니지만
주된 목적은 집값상승이라는 기대감이 있기에 전세가 나온거야
그러면 간단하게
수요와 공급, 이자의 관점에서 전세값을 알아보자
전세는 집값상승이라는 기대감에 존재한다고 했지?
1. 주택공급 수를 줄이면 집값이 올라가고 그 기대감에 전세가 생기겠네요?
-주택공급을 줄이면 집값상승으로 이어져서 실 수요자에게 부담이 되
2. 그럼 이자를 올리면 전세금을 은행에 예치 할려고 할테니 전세가 늘어 나겠네요?
-부동산, 동산은 유기적인 관계야 금리가 올라가서 동산 자산이 선호되게 된다면
 부동산의 돈이 빠져서 동산에 몰리게 되고 부동산가격의 전체적인 하락으로 인해
 빚을끼고 집을 산 사람은 손해를 보게되어버려

-수정중-

지적대화를 위한 넓고 얕은 지식, 지대넓얕 독서평

지적대화를 위한 넓고 얕은 지식

ISBMN9788994120966

저자 : 채사장

최근 베스트셀러에 올라와 있던 지적대화를 위한 넓고 얕은 지식… (후속편도 나오는 모양)

지 대 넓 얕

이 얼마나 마법 같은 제목인지 모르겠다. 아마 저자는 제목학원 원장이 틀림 없다

이 책 한권이라면! 어디든 끼여서 아는 척이 가능 할 것만 같은… 하지만

이 생각은 읽으면 읽을수록 실망을 가져왔고 읽은 뒤에는 실망보다 이 책한권으로

넓은 분야에서 누군가와 대화를 하길 원했던 나도 책 제목에 혹 해서 고르게 되었지만

이 책에 빠진 내용이 아주 많고 저자가 자기 입맞에 알맞게 지식이란 이름 아래 교묘히

편향되게 적어둔건 눈꼴사납다 못해 아주 못봐줄 지경이라 뛰어 넘은 부분도 있다…

이 책은 역사, 경제, 정치, 사회, 윤리 5파트로 나눠서 구성되어 있다

역사, 경제 파트는 아주 큰틀은 벗어나지 않는다

그런데 중간에 생략된 내용이 정말 아주아주 많다, 각각 100페이지 가량

고등학교 문과생들이 배우는 내용도 아마 이것보단 많을꺼다

중간 중간에 빠진 또다른 굵직 굵직한 사건들과 그 당시 제도와 문화가 반영된 부분은

독자가 찾아봐야 되지 않을까싶다

그런데 문제는 중간중간 저자의 입맛에 알맞게 교묘하게 서술해 나가는데 아주 더럽다