답변:
Arduino 시뮬레이터가 많이 있으며, 무료이며 일부 유료 제품도 있습니다.
검색하면 많은 다른 Arduino 시뮬레이터가 있으며 새로운 시뮬레이터가 항상 크라우드 펀딩되어 발표되고 있습니다.
나는 이것을 위해 circuits.io 일명 TinkerCAD 를 사용하고 싶습니다 .
클라우드 기반이며 PCB 설계 및 협업을 포함한 멋진 기능이 있습니다.
Arduino 시뮬레이션 및 기능은 인상적이고 직관적입니다.
전자 시뮬레이터의 세계에는 수많은 옵션이 있지만 circuits.io 일명 TinkerCAD 는 아마도 가장 다재다능한 것입니다.
이것은 IR 리모콘과 LCD 화면이있는 회로 예입니다.
면책 조항 : 우리는 123D Circuits의 제조업체입니다
실제 상황을 재현하는 시뮬레이터는 없습니다. Arduino 포럼에는 코드 또는 전자 제품 관련 문제에 대한 게시물이 많이 있습니다.이 게시물은 다음과 같이 미묘합니다.
그 특성상 시뮬레이터는이 모든 것을 재현 할 수 없습니다. 가능하더라도 "모터에서 임의 노이즈 삽입"옵션을 토글한다고 생각하십니까?
보드가 도착할 준비를하려면 IDE를 다운로드하고 프로그래밍을 시작하십시오. 라이브러리를 설치하고, 코드를 작성하고 구문 오류를 없애고 깔끔하게 정리할 수 있으며 일반적으로 하드웨어가 준비되어있는 큰 하루를 준비 할 수 있습니다.
Arduino로 즐거운 시간을 보내십시오.
Yenka (가정용 무료)를 사용하여 Arduino, PIX, PIXACE 및 기타 보드를 디지털, 아날로그 및 직렬 I / O로 시뮬레이션 할 수 있습니다 . 많은 컴포넌트와 샘플 프로젝트를 제공합니다.
스크린 샷 :
예, 코드 시뮬레이션을 위해 Proteus ISIS 를 사용해보십시오 ...
Arduino의 전체 에뮬레이션을 위해 VBB (Virtual BreadBoard) 라는 쉐어웨어 프로그램 이 있습니다.
편집 : Proteus ISIS에서 시뮬레이션하는 방법에 대한 자세한 자습서를 여기서 확인할 수 있습니다
이 웹 사이트 에는 가격과 가용성과 함께 에뮬레이터와 시뮬레이터 목록 이 있다고 생각합니다 .
최신 정보:
일부 사용자는 해당 웹 사이트에 깨진 링크가 있다고 언급 했으므로 여기에 내가 찾은 에뮬레이터가 있습니다. 언급 된 링크에서 일부 설명이 나올 수 있습니다.
Emulino : 초기 개발에서 Arduino 관련 MCU를 에뮬레이트하는 오픈 소스 Linux 기반 소프트웨어입니다.
Emulare : 범용 하드웨어 에뮬레이터입니다. 임베디드 소프트웨어 개발을위한 전자 시뮬레이션을 구축하기위한 중앙 인터페이스를 제공하는 것을 목표로합니다. 현재 emulare는 ATMega 마이크로 컨트롤러 제품군에 중점을두고 있습니다 (Arduino UNO에는 ATMega 프로세서가 있습니다).
SimAVR : Linux 또는 avr-gcc를 사용하는 모든 플랫폼을위한 새로운 AVR 시뮬레이터입니다. 시뮬레이터는 ELF 파일을 직접로드하며, .elf 섹션을 사용하여 에뮬레이트 된 코드에서 시뮬레이션 매개 변수를 직접 지정할 수도 있습니다. 많은 ATMega 프로세서의 에뮬레이션을 지원하며 새로운 프로세서를 추가하기도 쉽다고 언급되어 있습니다.
Amtel Studio : 이것은 에뮬레이션이라는 용어를 언급하지는 않지만 많은 플랫폼, 특히 Arduino 용 코드를 디버깅하는 정교한 IDE입니다. Atmel Studio 7은 Arduino 개발 환경에서 생성 된 프로젝트를 원 클릭으로 완벽하게 가져옵니다. 참조하는 라이브러리를 포함한 스케치를 C ++ 프로젝트로 Studio 7로 가져옵니다. 가져온 후에는 Studio 7의 모든 기능을 활용하여 디자인을 미세 조정하고 디버깅 할 수 있습니다. Atmel Studio 7은 Arduino Zero 보드에서 강력한 임베디드 디버거를 완벽하게 지원합니다. 다른 Arduino 보드의 경우 디버그 커넥터를 노출하는 쉴드 어댑터를 사용할 수 있거나 사용 가능한 많은 Xplained-Mini / PRO 보드 중 하나로 전환하여 Atmel HW 에코 시스템을 완전히 활용할 수 있습니다.
EasyEDA 와 같은 시뮬레이터를 사용 하여 코드를 테스트 할 수 있으며 대부분의 경우 장치에서 코드를 실행할 수 있습니다. 그러나 전자 부품의 특성상 예상되는 결과를 얻으려면 외부 저항, 커패시터 등을 제공해야 할 수도 있습니다.
Virtualbreadboard에는 JVM Arduino 에뮬레이터와 거의 모든 Arduino 배포 예제 및 주변 장치 하드웨어-LCD, WS2812 Neo LEDS, Motors, Servo의 모든 주변 장치를 포함하는 예제가 포함 된 AVR 명령어 세트 시뮬레이터를 포함하는 새로운 VBB4Arduino 'Two Arduino 's 에디션이 있습니다. , 로직 분석기 등.
http://www.virtualbreadboard.com
면책 조항 : 나는 가상 브레드 보드의 저자입니다
Arduino 용 Simulator를 사용해보십시오 . 최고이지만 개발 팀의 일원이므로 편향되어 있습니다. 지난 5 년간 거의 5k 명의 Arduino 사용자가 있었지만 모든 사람이 19.99 달러를 지불하고 싶어하는 것은 아닙니다. 45 일 동안 또는 100 회의 스케치로드와 최대 200 라인으로 실행되는 Simulator for Arduino의 무료 버전이 있습니다. 이것을 시도하고 당신이 그것을 감당할 수 있는지 그리고 / 또는 가치가있는 것처럼 사면 구입하십시오.
옳지 않거나 개선 될 수있는 것이 있다면 알려주세요. 다른 모든 사람들이 가지고 있고 가지고 있기 때문에, Arduino 용 시뮬레이터는 사용자 아이디어와 버그 보고서로 99 % 구축되었습니다.
또한 우리가 시도한 유일한 프로그램은 품질이 비슷하지만 Proteus이지만 전체 PCB 디자인 스튜디오이며 매우 비쌉니다. 즉 $ 20 이상입니다. 그리고 최근 사용자의 요청을 무시하여 가격을 $ 200로 인상 할 계획입니다.
예를 들어 내 시뮬레이터를 사용할 수 있습니다. 타이머, 마커, 래치, 원샷 및 레지스터와 같이 상호 연결된 회로와 유사한 객체를 주기적으로 평가하여 멀티 태스킹을 수행하는 PLC와 같은 애플리케이션에 특히 적합합니다. 이를 사용하여 제어 시스템을 시뮬레이션 할 수 있으며 다운로드의 예에서 명확 해집니다. 시각화 기능이 적당하고 타이밍 차트를 그릴 수 있으며 시뮬레이션을 실행하는 동안 실시간으로 모든 변수에 cq force를 액세스하고 변경할 수 있습니다. 또한 시간을 얼릴 수 있습니다. 컨트롤의 동작에 만족하면 실제 Arduino에 업로드 할 C 코드가 생성됩니다.
데스크탑 컴퓨터를 사용하여 코드를 작성하고 에뮬레이션 / 테스트 할 수있는 방법
데스크톱 컴퓨터를 사용하여 "유닛 테스트"를 할 수 있다면 arduino_ci 라는 라이브러리를 제공 할 수 있습니다 .
에뮬레이션을 제공하지 않습니다. 테스트를 코드로 표현할 것입니다. 예를 들어, 다음은 포트에 기록 된 데이터의 유효성을 검사하는 참조 문서 에서 가져온 테스트입니다 .
unittest(pin_history)
{
GodmodeState* state = GODMODE();
int myPin = 3;
state->reset(); // pin will start LOW
digitalWrite(myPin, HIGH);
digitalWrite(myPin, LOW);
digitalWrite(myPin, LOW);
digitalWrite(myPin, HIGH);
digitalWrite(myPin, HIGH);
// pin history is queued in case we want to analyze it later.
// we expect 6 values in that queue.
assertEqual(6, state->digitalPin[1].size());
bool expected[6] = {LOW, HIGH, LOW, LOW, HIGH, HIGH};
bool actual[6];
// convert history queue into an array so we can verify it.
// we expect to find 6 values: the 5 we set, plus the initial LOW
// and this is where/how we assert that
int numMoved = state->digitalPin[myPin].toArray(actual, 6);
assertEqual(6, numMoved);
// verify each element
for (int i = 0; i < 6; ++i) {
assertEqual(expected[i], actual[i]);
}
}
실제로 digitalWrite
함수를 직접 호출하지 않을 수도 있습니다. 라이브러리에서 함수를 호출 한 다음 "월드 상태"(여기서 GODMODE
구문으로 표시)가 라이브러리에서 예상 한 것과 일치하는지 확인하십시오.
예, 가능하고 상당히 쉽습니다. TinkerCAD 라는 멋진 온라인 시뮬레이션 (완전히 무료)이 있습니다 . 트랜지스터, LED, IC 및 Arduino와 같은 부품으로 뛰어난 브레드 보드 시뮬레이션을 제공합니다. 대화식 입력 (푸시 버튼, DIP 스위치 등)이 포함 된 실시간 시뮬레이션에서 Arduino를 프로그래밍하고 실행할 수 있습니다.
[편집 : 다음 텍스트는 Circuits.io 로 이동 한 기능 , 즉 Eagle PCB 를 나타냅니다 ]
그게 다가 아닙니다. 또한 회로를위한 별도의 탭 회로도와 브레드 보드 회로의 PCB 설계를위한 다른 탭도 포함되어 있습니다! 또는 회로도를 처음부터 새로 만들어 PCB를 만들 수 있습니다.
회로 설계를하고 구입할 수 있습니다. circuits.io에서이 모든 작업을 수행 할 수 있으며 실제 Arduino를 망칠 위험이 없습니다. 또한 시뮬레이션에 경고 표시기가 있습니다 (예 : LED 또는 IC에 충분한 저항을 사용하지 않은 경우).