그림1. LCD 1602(16X2) 4(I2C제어) 디스플레이 모듈

 

 

 

  LCD 1602(16x2) 4(I2C제어) 디스플레이 모듈

 

LCD 가장보편적이고초보자, 입문자분들이쉽게활용할있는모델인LCD 1602 입니다. 또한 16핀의제어핀을LCD뒤에부착된I2C변환모듈을통해 4개의핀으로제어가가능하도록쉽게만들어진모델입니다.

 

 

 

그림2. LCD 1602(16X2) 4(I2C제어) 디스플레이 모듈 핀맵

 

 

 

 

 

LCD 1602(16x2) 4(I2C)제어 레이 모듈 보러가기(클릭)

 

 

 

 

 

1. LCD 1602(16x2) 4(I2C)제어 디스플레이 모듈  

 

쉽게사용할있는 4모델로I2C통신을통해제어되는 LCD 디스플레이모듈입니다. 해상도는16x2 케릭터(Character Type)입니다.

 

디스플레이 타입(Display Type)

LCD(Liquid Crystal Display)

동작 전압(Operating Volate)

5V

해상도(Resolution)

16x2

I2C 주소

0x3F or 0x27

통신 인터페이스

I2C 통신 지원

백라이트

파란색(Blue)

색상

흰색(White)

소비전력

0.4W

무게(Weight)

3.2g

크기(Size)

82 x 35 x 18mm

 

 

 

2. 라이브러리 다운로드  설치하기  

 

LCD_I2C사용하기위해서는라이브러리를다운받아야합니다. 다운경로는아래와같습니다.

 

 

 

LCD I2C 라이브러리 다운받기(클릭)

 

 

 

 

 

 

다운받은 ZIP파일안에들어있는폴더를컴퓨터의아두이노 IDE 설치경로로들어가아래그림과같이라이브러리폴더아래에복사해넣어줍니다. 아두이노 IDE껐다실행하면자동으로아래경로의라이브러리가포함되어실행됩니다.

 

 

 

 

 

 

 주의사항

  - 라이브러리 추가시 경로설정을 정확하게 해야합니다.

    아래 그림과 같이 ' C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C-master ' 경로 안에

    example 폴더와 헤더파일을 포함한 파일들이 들어있어야 합니다.

    (경로설정을 잘못하면 아두이노 IDE에서 컴파일 오류가 발생할 수 있습니다.)

 

 

 

 

 

 

 

3. 회로도 구성  

 

아두이노우노와I2C 통신을구성해봅시다. 회로도는아래와같이연결해줍니다.

 

5V – VCC

GND – GND

A4 – SDA

A5 - SCL

 

 

 

 

4. 예제 따라하기1 – Hellow world  

 

 이제디스플레이해봅시다!!

 

 

예제소스는다음과같습니다.

 

#include <Wire.h>                        // i2C 통신을 위한 라이브러리

#include <LiquidCrystal_I2C.h>        // LCD 1602 I2C 라이브러리

LiquidCrystal_I2C lcd(0x3F,16,2);     // 접근주소: 0x3F or 0x27

void setup()

{

  lcd.init();                      // LCD 초기화

  // Print a message to the LCD.

  lcd.backlight();                // 백라이트 켜기

  lcd.setCursor(0,0);             // 1번째, 1라인

  lcd.print("Hello, world!");

  lcd.setCursor(0,1);             // 1번째, 2라인

  lcd.print("Enjoy - Eduino");

}

void loop()

{

}

 

실제동작모습은다음과같습니다.

 

 

 

그림3. LCD 1602 4핀제어 디스플레이 모듈 실행 예제1. Hellow world

'홍익인간 프로젝트 > Arduino C' 카테고리의 다른 글

u8g2setupcpp  (0) 2020.12.25
PCF8574 I2C 확장보드로 CLCD, Text(텍스트) LCD 구동 (아두이노)  (0) 2020.12.25
Software Serial Example  (0) 2020.12.16
Arduino Uno TM1637 Display  (0) 2020.12.16
Arduino Basic  (0) 2020.12.12

What I'm trying to achieve is to create one module that contains multiple functions in it.

 

 

The problem I have is that the firstParam is an object type and the secondParam is a URL string, but when I have that it always complains that the type is wrong.

How can I declare multiple module.exports in this case?

 

 

stackoverflow.com/questions/16631064/declare-multiple-module-exports-in-node-js

Many users find it helpful to export their Gravity Forms entries as a PDF for better ability to print them as well as attach them within an email. In this article, we will show you how to use a 3rd party plugin to easily export your Gravity Forms entries as a PDF.

Downloading the Gravity PDF Add-On

While Gravity Forms does not have the ability to natively export entries as a PDF, another developer has developed a solution that works quite well.

  1. First, log into your WordPress admin dashboard.
  2. Next, hover over Plugins and click on Add New.
  3. On the top right of the page, search for Gravity PDF.
  4. Upon searching, your first result should be Gravity PDF from Blue Liquid Designs. Simply click the Install Now button.
  5. WordPress will now handle the download and installation of the Gravity PDF plugin for you. Be sure to activate the plugin once complete.

Exporting Entries as PDF

  1. First, click on Forms on the left side menu.
  2. Next, hover over the form that you want to view entries for. Upon doing so, you will see additional options appear. Click on Entries.
  3. You should now be looking at a list of your entries. Hover over your desired entry, and click on View PDF.
  4. You will now be presented with a PDF of your Gravity Forms entry.

Questions & Support

The Gravity PDF Add-On is created by a third-party developer and as such is not supported by our team, please contact the plugin developer if you have any questions about its features or require support for any issues.

이 글은 ‘JavaScript — The Conditional (Ternary) Operator Explained by Brandon Morelli’ 를 번역한 글입니다.

기본부터 시작하다 — if 문

if 문처럼 조건부(conditional)를 사용한다면, 특정 조건이 충족되면 특정 블록의 코드가 실행되어야 되는 것을 허락합니다.

다음 예시를 봅시다:

우리는 driver, name, age 라는 프로퍼티(property)를 가진 person 객체(object)를 예시로 봅시다.

let person = {
name: 'tony',
age: 20,
driver: null
};

우리는 person 나이가 16보다 크거나 같은지 실험을 해보고 싶습니다. 만약 해당 실험이 참이라면, 사람은 운전 가능한 나이고 driver 은 ‘yes’ 라고 할 것입니다. 만약 해당 정보가 거짓이면 driver 은 ‘No’를 반환할 것입니다.

해당 실험은 if 문으로 작성할 수 있습니다:

if (person.age >= 16) {
person.driver = 'Yes';
} else {
person.driver = 'No';
}

그러나 우리가 위에 완성된 if 문을 한 줄의 코드로 작성할 수 있습니다. 자, 여기있습니다:

person.driver = person.age >=16 ? 'Yes' : 'No';

이 짧은 코드는 우리에게 동일한 person.driver = ‘Yes’; 의 결과를 산출합니다.

The Conditional (Ternary) Operator (조건부 삼항 연산자)

우선, 우리는 정형적인 if 문법을 보겠습니다:

if ( condition ) {
value if true;
} else {
value if false;
}

자, 이제 ternary operator(조건부 삼항 연산자) 로 바꿔볼까요?:

condition ? value if true : value if false

당신이 알아야할 것은 다음과 같습니다:

  1. condition(조건) 이 당신이 실험하고 있는 것이다. 당신의 condition(조건)의 결과는 진실 또는 거짓입니다. 아니면 적어도 boolean 값은 일치해야한다.
  2. A ? 는 우리의 conditional(조건부)과 true value 값을 구분합니다. ?  : 사이에 있는 모든 condition(조건)은 true(참)이면 실행된다.
  3. 마지막으로 : 은 조건의 상태가 거짓으로 평가되면 : 이후에 나오는 코드는 실행된다.

예시 — Driver(운전자)의 나이

다시 처음 예시를 살펴보자:

let person = {
name: 'tony',
age: 20,
driver: null
};person.driver = person.age >=16 ? 'Yes' : 'No';

가장 중요한 것은 operations(연산자) 순서이다. 코드를 실행하는 순서를 시각화하는데 도움이 되는 parenthesis(괄호)를 추가해보자.

person.driver = ((person.age >=16) ? 'Yes' : 'No';)

시각화하면, 우리의 conditional(조건부) 가 person.age > = 16 값이 참인지 거짓인지 처음으로 확인한다.

20 16보다 크기 때문에 true(참)으로 평가한다. 지금 우리는 여기까지 왔다:

person.driver = (true ? 'Yes' : 'No';)

우리의 conditional(조건부)의 condition(조건) 이 true 이므로, ?  : 사이에 있는 값이 리턴된다. 해당 예시같은 경우에는 ‘Yes’ 결과 값이 나온다.

리턴 값이 있기에 마지막으로 해야할 일은 변수와 동일하게 설정하는 것이다.

person.driver = 'Yes';

축하합니다! 이제 좀더 복잡한 예시를 살펴봅시다.

예시 — 학생할인

해당 예시에서 우리가 영화관을 위해 코딩을 한다고 합시다. 영화관은 두 가지의 표 가격을 제시합니다: 일반인은 $12 그리고 학생은 $8 으로 가격을 제시합니다.

구매하는 사람이 학생인지 아닌지의 여부를 추적할 변수를 생성합시다:

let isStudent = true;

해당 변수를 통해 우리는 ternary operator( 삼항 연산자) 를 사용하여 가격을 변동할 수 있습니다.

let price = isStudent ? 8 : 12
console.log(price);
// 8

isStudent boolean 이 true(참) 이므로, 8 값이 다중 삼항(ternary)으로부터 price 변수로 리턴됩니다.

예시 — Nested Ternary

하지만, 만약 영화관에서 학생과 노인에게 할인을 한다면 어떻게 할까요?

우리는 다양한 조건을 실험하기 위해서 nest(네스트) 된 ternary operator( 삼항 연산자) 사용할 수 있습니다.

해당 시나리오를 확인하면 티켓은 : 일반인은 $12, 학생은 $8 그리고 노인은 $6 입니다.

노인인구를 추정하는 코드는 다음과 같습니다:

let isStudent = false;
let isSenior = true;
let price = isStudent ? 8 : isSenior ? 6 : 10console.log(price);
// 6

해당 예시는 복잡합니다. 그러니 이를 짧게 나누어봅시다.

  1. 우선, 우리는 티켓 구매자가 학생인지 알아봐야합니다. isStudent 가 false(거짓) 이므로, 첫 번째 : 이후의 코드만 실행합니다. : 이후에는 새로운 조건부가 있습니다.
  2. 두번째 조건부는 isSenior 를 확인해봅니다. — 이가 true(참) 이기 때문에 ? 이후 : 이전의 코드만 실행합니다.
  3. price 는 6의 값이 할당된다.

예시- Multiple operations (다수의 조건)

Multiple operations(다수의 조건) 를 ternary 안에 실행할 수 있습니다. 이를 위해, 우리는 쉼표로 조건을 나누어야 합니다. 또한, 추가적으로 괄호를 사용하여 코드를 그룹화 할 수 있습니다.

let isStudent = true;
let price = 12;
isStudent ? (
price = 8,
alert('Please check for student ID')
) : (
alert('Enjoy the movie')
);

위의 예시에서 우리의 영화 price (가격) 는 이미 $12 로 지정되어 있습니다. 만약 isStudent  true(참) 이면 , 우리는 price 를 $8로 조정하고 판매자에게 학생증 확인하는 alert (경고)를 보냅니다. 만약 isStudent  false(거짓) 이면, 위의 코드는 생략하고, 영화를 즐기라는 경고가 나옵니다.

 

medium.com/@saerombang11/%EB%B2%88%EC%97%AD-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A1%B0%EA%B1%B4%EB%B6%80-%EC%82%BC%ED%95%AD-%EC%97%B0%EC%82%B0%EC%9E%90-conditional-operator-%EC%84%A4%EB%AA%85%ED%95%98%EB%8B%A4-ac8afdb294ab

+ Recent posts